2012-04-18 5 views
1

내 응용 프로그램 솔루션 (많은 응용 프로그램, 1 데이터베이스, 일부 타사)에서 폴링을 줄이려면 고객은 진행중인 GUI 상태를 최신 상태로 유지해야합니다. SQL Server 기술을 사용하여 .NET 코드를 통해 이벤트 핸들러를 테이블이나 데이터베이스에 추가 할 수 있습니까? 외부 활성화와데이터베이스 개체의 .NET 이벤트 처리기

  • SQL 서버 서비스 브로커 - 단지 새로운 애플리케이션, 저장 프로 시저 시나리오
  • CLR이 아니 정말로 "이벤트 핸들러"종류를 출시 - :

    여기에 몇 가지 솔루션은 내가 건너 왔어요된다 제한된 기능, 분명히 동일한 문제가 GUI 상태 화면에 이벤트를 가져 오는 것입니다

  • 사용자 지정 - SQL Server에서 트리거를 사용하여 폴더에있는 파일 (XP 명령 셸 사용)을 만드는 것과 같은 미친 작업을 수행 할 수 있습니다. 이벤트가 발생하면 FileSystemWatcher 개체에서 파일 c를 가져와야합니다. 그런 식으로 방아쇠를 당긴다. 그러나 그것은 어떻게 든 나쁜 냄새가 난다.
+0

며칠 전이 문제에 대해 생각해 보았습니다. 제 경우에는 db 개체의 정의가 변경 될 때이를 알릴 수 있어야합니다. 테이블 또는 뷰에 캐시 종속성을 추가하고 변경 사항을 추적하기 위해 캐시 종속성을 사용할 수 있는지 궁금합니다. 조사할만한 가치가 있을지도 몰라. 또는 궁극적으로 예쁜 eggy 냄새가 수도 있습니다. http://msdn.microsoft.com/en-us/library/system.web.caching.sqlcachedependency.aspx – 5arx

+0

왜 sys.objects에 마지막 x에서 수정 된 항목이 있는지 쿼리 할 수 ​​없습니까? 그것이 폴링이기 때문에 –

+0

입니다. 원하는 효과를 얻기 위해 무언가가 변경되었는지를보기 위해 매 순간 데이터베이스를 점검하면 서버에 대한 많은 추가 작업이 필요합니다. 어떤 일이 발생했는지보고있을 때 알림을 보내면 훨씬 효율적입니다. 밀어 넣기/당기기. – Jrud

답변

3

SqlDependency을 볼 수 있습니다. 주의해야 할 점은 데이터베이스에 대한 활성 의존성을 갖는 서버의 비교적 소수가 어디서 문서 상태로서,

SqlDependency가 ASP.NET 또는 중간층 서비스에 사용되도록 설계되었다이다. 수천 또는 수천 개의 클라이언트 컴퓨터가 단일 데이터베이스 서버에 대해 SqlDependency 개체를 설정하는 클라이언트 응용 프로그램에서 을 사용하도록 설계되지 않았습니다. 데이터가 변경 될 때 신뢰할 수있는 초 단위 알림이 필요한 응용 프로그램을 개발하는 경우 SQL Server 온라인 설명서의 섹션에서 효율적인 쿼리 알림 전략 계획 및 알림 계획 대신 알림 계획 항목을 검토하십시오.

위의 내용이 대부분의 SQL Server 클라이언트 응용 프로그램에 적용되지만 일반적으로이 문제는 문제가되지 않습니다.

+0

Heh heh 아마 내가 바보 같지는 않다고 생각했는데 ;-) – 5arx

+0

No :-) SQL 캐시 의존성과 sqldependency가 똑같은 것은 아니지만. –

+0

젠장, 네 말이 맞아. 나는 SqlDependency를 의미했다고 생각합니다. @Jrud와 내가 진행하는 것이 현명한 방법이라고 생각하십니까? 그리고 나는 MSDN 문서가 2008 년만을 언급한다는 것을 알아 차립니다. 최신 db 버전을위한 새로운 메커니즘이 있습니까? – 5arx