developer tip

SQL Server 2008 Express 데이터베이스에 모든 쿼리를 기록 하시겠습니까?

copycodes 2020. 12. 15. 19:27
반응형

SQL Server 2008 Express 데이터베이스에 모든 쿼리를 기록 하시겠습니까?


SQL Server 2008 Express에 모든 쿼리 (각 SELECT 쿼리 포함)를 파일에 기록하도록 지시하는 방법이 있습니까?

이것은 개발 머신이므로 Select-Queries 로깅의 부정적인 부작용은 문제가되지 않습니다.

누군가가 SQL 프로파일 러 사용을 제안하기 전에 : Express에서는 사용할 수 없습니다 (Web Edition에서 사용할 수 있는지 아는 사람이 있습니까?). 내가 자리를 비 웠을 때에도 쿼리를 기록하는 방법을 찾고 있습니다.


SQL Server 프로파일 러 :

  • 파일 → 새 추적
  • "일반"탭이 표시됩니다.
  • 여기에서 "파일에 저장 :"을 선택하여 파일에 기록 할 수 있습니다.
  • "이벤트 선택"탭보기
  • 기록 할 항목을 선택하십시오.
  • TSQL → SQL : BatchStarting은 SQL 선택을 가져옵니다.
  • 저장 프로 시저 → RPC : Completed는 저장 프로 시저를 가져옵니다.

Microsoft의 추가 정보 : SQL Server 2008 온라인 설명서-SQL Server 프로파일 러 사용

업데이트-SQL Express Edition :

Express Edition에서는 MS SQL Server Profiler를 사용할 수 없다는 의견이 작성되었습니다.
무료 대안이있는 것 같습니다. Microsoft SQL Server 2005 Express Edition 용 프로파일 러


… 최근 답변이지만 다른 독자들에게 도움이 되었으면합니다…

이와 같은 고급 감사 요구 사항과 함께 SQL Server Express를 사용하는 것은 개발 환경에만 있지 않는 한 실제로 최적이 아닙니다.

추적 (www.broes.nl/2011/10/profiling-on-sql-server-express/)을 사용하여 필요한 데이터를 가져올 수 있지만이를 직접 구문 분석해야합니다.

이를 수행 할 수있는 타사 도구가 있지만 그 비용은 상당히 높습니다. ApexSQL의 로그 탐색기 는 select를 제외한 모든 것을 기록 할 수 있으며 Idera의 규정 준수 관리자는 select 문도 기록하지만 비용이 훨씬 많이 듭니다.


여기에 설명 된 MS SQL Server Express에서 실행 된 쿼리에 대한 정보를 얻을 수있는 또 다른 방법이 있습니다 .

간단히 말해 시스템 테이블에 스마트 쿼리를 실행하고 쿼리 (또는 필요한 경우 캐시 된 쿼리 계획)에 대한 정보 (텍스트, 실행 시간)를 가져옵니다. 따라서 MSSQL 2008 Express 에디션에서 프로파일 러없이 실행 된 쿼리에 대한 정보를 얻을 수 있습니다.

SELECT deqs.last_execution_time AS [Time], dest.TEXT AS [Query]
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
ORDER BY deqs.last_execution_time DESC

변경 사항을 기록 할 수 있습니다. SQL Server 2008은 변경 데이터 캡처를 통해이를 특히 쉽게 만들 것입니다. 그러나 SQL Server는 SELECT 로깅에 그다지 좋지 않습니다.

이론적으로 프로파일 러를 사용하면 가능하지만 성능이 저하됩니다. 당신은 당신의 데스크탑에서 "그것에서 벗어날 수 있습니다"그러나 나는 당신의 컴퓨터가 문제를 일으킬 정도로 느리게 작동하는 것을 눈치 챌 것입니다. 그리고 어떤 종류의 배포 후에도 확실히 작동하지 않습니다.

다른 사람들이 이미 놓친 한 가지 중요한 점은 내가 듣지 못했던 2008 년에 무언가를 변경하지 않는 한 SELECT를 트리거 할 수 없다는 것입니다.


기록을 위해 DataWizard의 SQL Performance Profiler 를 별도의 답변으로 사용하는 힌트를 포함 했습니다 . SQL Server Profiler를 가리키는 답변 과 실제로는 반대이기 때문 입니다.

14 일 무료 평가판이 있지만 구입해야하더라도 서버 3 대당 20 달러에 불과합니다 (작성 시점, 2012-06-28). SQL Server Express 에디션을 사용하는 수천 명의 사람들이 절약 한 것을 고려하면 이것은 나에게 공정한 것 이상으로 보입니다.

지금까지 평가판 만 사용했으며 OP가 찾고있는 것을 정확히 제공합니다. 특정 데이터베이스에 들어오는 모든 쿼리를 추적하는 방법입니다. 또한 추적을 XML 파일로 내보낼 수 있습니다. 유료 버전은 더 많은 기능을 제공하지만 아직 시도하지 않았습니다.

면책 조항 : 나는 때때로 DB를 망쳐 놓는 또 다른 개발자 일 뿐이며 DataWizard와 관련이 없습니다. 나는 그들의 도구가 마음에 들었고 SQL Server Express 설치를 프로파일 링하는 데 도움이 되었기 때문에 사람들에게 그것이 존재한다는 것을 알리고 싶었습니다.


트리거를 사용하거나 Red Gate와 같은 타사 소프트웨어를 사용하여 SQL 로그 파일을 확인합니다.


T-SQL을 사용하여 추적을 만들 수있는 것 같습니다.

http://support.microsoft.com/kb/283790/

도움이 될 것입니다.

참조 URL : https://stackoverflow.com/questions/123781/logging-all-queries-on-a-sql-server-2008-express-database

반응형