우리는 두 DB가 150 개 이상의 다른 DB와 함께 SQL Server 인스턴스에 상주하는 두 개의 서로 다른 응용 프로그램을 통합하려고하는 타사 공급 업체를 보유하고 있으며 5 분마다 두 개의 서로 다른 응용 프로그램을 "동기화"하기 위해 MSDB 작업을 생성하려고합니다 (처음에는 처음에 매분마다 실행하고 싶었습니다).
필자의 첫 번째 직책은 Windows 예약 작업 또는 어쩌면 무서운 트리거 (일반적으로 이와 같은 상황에 의존)를 사용하여 응용 프로그램 계층 에서이 작업을 수행해야한다는 것입니다.
나는 DBA 작업을 위해 MSDB 작업을 가능한 한 많이 예약하고 거기에 혼란을 줄이려고 노력하고 있으며 이와 같은 매우 활동적인 작업으로 작업 기록을 볼 때 MSDB에 대한 쿼리가 느리게 진행됩니다. 백업 기록과 같은 더 중요한 것). 그러나 다시, 내 환경 설정이 잘못되었을 수 있으며 MSDB의 응용 프로그램 계층을위한 공간을 확보하고 소매를 롤업하고 작업 내역 문제를 해결하기 위해 더 많은 기록 항목을 유지해야 할 때 영원히로드하는 문제를 해결해야합니다. 백업과 같은 중요한 것들 (또는 과잉 활성 작업 항목 제거)
내가 가지고있는 또 다른 문제는 이제 GUI를 통해 업그레이드를 수행 할 때 DB에 대해서만 "dbo"권한 대신이 공급 업체에게 "sysadmin"권한을 부여해야하며 내 임무가 중요한 인스턴스를 날려 버리지 않기를 바랍니다. DB는 (통합의 단점 중 하나)입니다.
잘 작동하지 않는 모든 공급 업체를 배치하는 또 다른 "절연 된"인스턴스에이를 배치 할 수 있지만 새 SQL 인스턴스를 가리 키도록 응용 프로그램을 재구성해야합니다 ( 안타깝게도이 경우에는 한숨 이 아님).
공급 업체는 이미 트리거가 얼마나 나쁜지에 대해 우려를 표명했습니다. 그래서, 나는 이것에 대해 "구글 검색"하고 비어 왔습니다. 누군가가 "정식적인보고"라는 링크를 보았는데 이것이 나쁜 생각이고 그것들을 참조 할 수 있습니까? 아니면 그들의 접근 방식을 받아 들여야합니까?
도움을 요청하기 전에 SQL 포럼에 게시 한 적이 있다고 생각하지 않기 때문에 문의 사항이 제대로 작성 되었기를 바랍니다.
편집 : 우리는 SQL Server 2008 Enterprise R2 x64 SP1을 실행 중입니다 (버전을 언급하는 것을 잊어 버렸습니다!) 흠, 새 버전으로 갈 때 MSDB 업그레이드 스크립트를 변경할 필요가 없기를 바랍니다.
시간 내 줘서 고마워! 풍부한
sysadminSQL 에이전트 작업을 수정 하기 위해 반드시 제공 할 필요는 없습니다. msdn.microsoft.com/en-us/library/ms188283(v=sql.105).aspx를