programing

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

newstyles 2023. 7. 18. 21:35

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

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

개발 기계이기 때문에 Select-Query 로깅으로 인한 부정적인 부작용은 문제가 되지 않습니다.

SQL Profiler 사용을 제안하기 전에 다음을 수행합니다.Express에서는 사용할 수 없으며(Web Edition에서 사용할 수 있는지 아는 사람이 있습니까?) 부재 중에도 쿼리를 기록할 수 있는 방법을 찾고 있습니다.

SQL Server 프로파일러:

  • 파일 → 새 추적
  • 일반 탭이 표시됩니다.
  • 여기서 "파일에 저장:"을 선택하여 파일에 기록할 수 있습니다.
  • 이벤트 선택 탭 보기
  • 기록할 항목을 선택합니다.
  • TSQL → SQL:BatchStarting을 사용하면 SQL을 선택할 수 있습니다.
  • 저장 프로시저 → RPC:완료하면 저장 프로시저가 표시됩니다.

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

업데이트 - SQL Express Edition:

MS SQL Server Profiler를 Express Edition에 사용할 수 없다는 설명이 있었습니다.
무료 대안으로 Microsoft SQL Server 2005 Express Edition용 Profiler가 있습니다.

여기에 설명된 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 Express를 이와 같은 고급 감사 요구사항과 함께 사용하는 것은 개발 환경에서만 사용하는 경우가 아니라면 최적의 방법이 아닙니다.

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

이를 수행할 수 있는 타사 도구가 있지만 비용이 상당히 많이 듭니다.ApexSQL의 로그 탐색기는 선택을 제외한 모든 것을 기록할 수 있으며 Idera의 컴플라이언스 관리자도 선택 문을 기록할 것이지만 비용이 많이 듭니다.

변경 사항을 기록할 수 있습니다. SQL Server 2008을 사용하면 변경 데이터 캡처를 더욱 쉽게 수행할 수 있습니다.그러나 SQL Server는 SELECT 로깅을 잘 하지 못합니다.

그것은 이론적으로 프로파일러로 가능하지만, 당신의 성능을 떨어뜨릴 것입니다.데스크톱에서 "탈옥"할 수도 있지만, 문제를 일으킬 정도로 기계가 느리게 작동하는 것을 알게 될 것입니다.그리고 어떤 종류의 배치 후에도 그것은 확실히 작동하지 않을 것입니다.

다른 몇 명이 이미 놓친 중요한 점은 2008년에 대해 듣지 못한 것을 변경하지 않는 한 선택을 트리거할 수 없다는 것입니다.

참고로 DataWizard의 SQL Performance Profiler는 SQL Server Profiler를 가리키는 답변과 정반대이기 때문에 별도의 답변으로 사용하기 위한 힌트를 첨부합니다.

14일간 무료 체험판이 있지만, 구매가 필요하더라도 서버 3대에 20달러에 불과합니다(작성 시점, 2012-06-28).SQL Server Express Edition을 사용하는 모든 사용자가 절약한 수천 개의 비용을 고려할 때 이는 매우 공평한 것으로 보입니다.

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

고지 사항:저는 가끔 DB를 조작하는 또 다른 개발자일 뿐이며 결코 DataWizard와 관련이 없습니다.저는 우연히 그들의 툴이 마음에 들어 사람들에게 그것이 존재한다는 것을 알리고 싶었습니다. 그것이 제 SQL Server Express 설치 프로파일링에 도움이 되었습니다.

트리거를 사용하거나 Red Gate와 같은 타사 소프트웨어를 사용하여 SQL 로그 파일을 체크아웃할 수 있습니다.

T-SQL을 사용하여 추적을 생성할 수 있는 것 같습니다.

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

도움이 될 수도 있습니다.

아래 SQL 쿼리는 단순 쿼리 로그를 표시할 수 있습니다.

SELECT last_execution_time, text
FROM sys.dm_exec_query_stats stats
CROSS APPLY sys.dm_exec_sql_text(stats.sql_handle) 
ORDER BY last_execution_time

아래는 다음과 같습니다.

enter image description here

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