Share via


알림 계획

쿼리 알림을 효과적으로 사용하려면 쿼리 알림이 응용 프로그램에 효과적인지 여부와 응용 프로그램에서 사용되는 쿼리가 알림을 지원하는지 여부 및 알림 구독 및 수신을 위해 응용 프로그램에 사용할 전략 등에 대해 고려해야 합니다.

쿼리 알림은 쿼리의 데이터가 비교적 가끔 변경되고, 데이터 변경 시 응용 프로그램이 이를 즉시 업데이트할 필요가 없으며, 알림에 대한 쿼리 만들기에 설명된 요구 사항 및 제한 사항에 쿼리가 부합되는 경우 데이터베이스에 대한 왕복 횟수를 효과적으로 줄여 줍니다. 여러 웹 기반 응용 프로그램에서는 이러한 기준을 충족하며 이러한 응용 프로그램에서는 쿼리 알림을 활용할 수 있습니다.

일부 경우에는 쿼리 알림이 효과적이 아닐 수 있습니다. 쿼리 알림은 응용 프로그램이 데이터베이스에서 데이터를 자주 읽지만 상대적으로 데이터에 대한 업데이트가 가끔 발생하는 경우에 유용합니다. 예를 들어 온라인 카탈로그 응용 프로그램은 카탈로그 업데이트 횟수보다 읽기 횟수가 더 많을 것입니다. 하지만 온라인 장바구니의 경우에는 특정 내용이 상당히 자주 업데이트되기 때문에 쿼리 알림의 효율이 떨어집니다.

쿼리 알림은 응용 프로그램에서 공통 구조를 공유하고 매개 변수의 값만 달라지는 쿼리를 실행하는 경우에 더욱 효율적입니다. 예를 들면 다음과 같습니다.

SELECT ProductNumber, Name FROM Production.Product WHERE ListPrice < 300
SELECT ProductNumber, Name FROM Production.Product WHERE ListPrice < 500

이 경우 두 알림에 대한 쿼리 알림 구독은 같은 내부 템플릿을 공유하므로 서로 다른 쿼리 구조로 두 개의 알림을 사용하는 것보다 SQL Server 에 오버헤드가 적습니다. 하지만 쿼리에 있는 매개 변수는 유지됩니다. 쿼리에서 템플릿을 공유하는 경우에도 ListPrice가 350인 항목을 추가하면 첫 번째 쿼리가 아닌 두 번째 쿼리에 대한 알림이 발생합니다.

쿼리 알림이 테이블에 활성화된 경우 테이블에 대한 업데이트는 보다 비용이 높아집니다. 데이터베이스 엔진 은 구독을 확인하고 필요한 경우 알림을 생성하기 위해 추가 작업을 수행합니다. 내부 템플릿을 다시 사용하면 구독 당 오버헤드를 최소화하는 데 도움이 됩니다. 따라서 쿼리 알림은 유사한 구조의 쿼리를 전송하는 응용 프로그램에 대해서만 사용해야 합니다. 서로 다른 구조의 쿼리를 전송하는 응용 프로그램에서는 쿼리 알림을 사용하지 않아야 합니다.

예를 들어 특정 가격 범위의 카탈로그 항목을 표시하는 응용 프로그램은 같은 구조의 쿼리를 전송합니다. 이 경우 데이터베이스 엔진 은 각 쿼리에 대해 내부 템플릿을 다시 사용하여 쿼리 알림 성능이 향상될 수 있습니다. 하지만 임시 보고를 허용하는 응용 프로그램은 여러 구조의 쿼리를 전송합니다. 이 경우 응용 프로그램에서는 쿼리 알림을 사용하지 않아야 합니다.

데이터베이스 엔진 은 적어도 하나 이상의 등록된 구독에서 사용되는 한 내부 템플릿을 유지 관리합니다. 데이터베이스 엔진 은 여러 내부 템플릿의 개수를 하나의 특정 테이블로 제한합니다. 이러한 제한을 초과하면 새로운 템플릿을 만들어야 하는 구독이 데이터베이스 엔진 에 등록되지 않습니다. 그 대신 데이터베이스 엔진 은 구독을 등록할 수 없다는 구독 메시지를 즉시 생성합니다.

참고 항목

개념

알림에 대한 쿼리 만들기

도움말 및 정보

SQL Server 2005 지원 받기