2009-10-01 5 views
1

SQL 프로파일 러가 실행될 때 MSDB가 변경된다는 말을 들었습니다. 이것이 사실인가, 그렇다면 변화는 무엇인가?SQL Server 프로파일 러

더 많은 정보

물어 이유는 우리가 라이브 서버에서 프로파일 러를 실행하면 우리가 변경 요청 범위 싶은 DBA를 가지고있다. 그녀의 주장은 DB가 변경 제어를해야한다는 것입니다.

+1

아마 자체가 실행 추적으로 syscollections * 테이블 등에 등록됩니다. – RBarryYoung

+0

내부적으로 SQL 프로파일 러가 수행하는 작업에 대해 우려하는 이유는 무엇입니까? 그것은 시험되고 테스트 된 도구이며, 원치 않는 부작용이있을 경우 수정 될 때까지 누군가 큰소리로 외쳤을 것입니다. –

답변

3

추적을 시작하면 msdb.sys.traces에 행이 추가되고 추적을 중지하면 행이 제거됩니다. 그러나 msdb.sys.traces은 내부 테이블 값 함수를 통한 뷰이며 실제 저장소에 의해 지원되지 않습니다. 이것을 증명하려면 msdbread_only으로 설정하고 추적을 시작하고 msdb.sys.traces에 새 행을 확인한 다음 추적을 중지하고 msdb을 다시 read_write으로 기억하십시오. msdb이 읽기 ​​전용 인 경우 Profiler 이벤트에서 추적을 시작할 수 있으므로은 일반적으로 발생할 수있는 msdb에 대한 쓰기가 없음이 분명합니다.

이제 dba에 가서 미소지기 전에 그녀는 실제로 옳습니다. 추적기 이벤트는 추적 레코드를 생성 할 수있을 때까지 차단해야하므로 프로파일 러 추적은 실제 시스템에 심각한 스트레스를 줄 수 있습니다. 라이브, 사용 중, 시스템 유형이 SQLTRACE_BUFFER_FLUSH, SQLTRACE_LOCK, TRACEWRITE 및 기타 유형의 리소스에서 차단이 발생할 수 있습니다. 라이브 추적 (프로파일 러)이 보통 더 나빠요. 파일 추적 (sp_trace_create)이 더 좋지만 여전히 문제를 일으킬 수 있습니다. 그래서 새로운 흔적을 시작하는 것은 DBA가 알리고 매우주의 깊게 고려해야 할 사항입니다.

0

다른 사람들이 지적한 사소한 변화 이외에는 알고있는 한 사실이 아닙니다.

변경 사항은 무엇입니까?

1

주기 정보를 수집하기 위해 추적을 예약 할 때 내가 아는 유일한 것 - 작업이 추가되었습니다.

+0

SQL 에이전트 작업을 의미합니까? 추적을 실행하려면 SQL 에이전트 작업이 필요하지 않습니다. –

+0

@Philip Kelly : 저는 직업이 자동으로 생성되었다고 말하지 않았습니다. 트레이스를 예약 할 때 작업이 생성 될 것이라고 말했습니다. –

+0

특정 SQL 에이전트 작업 또는 백그라운드 작업/작업을 의미합니까? –

0

내가 읽거나 들었거나 들여 본 적이없는 내용으로 SQL 프로파일 러 또는 SQL 프로필러 또는 MSCOM이 MSDB 데이터베이스에 어떤 영향을 미치는지는 알려주지 않았습니다. (SQL Profiler는 본질적으로 추적 루틴을 감싸는 GUI입니다.) 물론, 특정 설정/구현을 구성하는 것이 가능합니다. 물론, 무엇이든, 아마도 누군가가 생각하고있는 것입니다.

"도시 전설"같은 소리가납니다. 당신이 그것을 도전하는 것이 좋습니다 - 그것이 사실이라고 주장하는 사람들에게 증거를 제공하십시오.