Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 33 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
33
Dung lượng
362,5 KB
Nội dung
1 1 ISQL Users Group May 2009 ISQL Users Group May 2009 Tracing and Profiling Tracing and Profiling SQL Server SQL Server Yaniv.Etrogi@gmail.com Yaniv.Etrogi@gmail.com http://blogs.microsoft.co.il/blogs/yaniv_etrogi http://blogs.microsoft.co.il/blogs/yaniv_etrogi 2 2 Over the next 1 hour: Over the next 1 hour: SQL Trace Architecture and SQL Trace Architecture and Terminology Terminology Security and Permissions Security and Permissions Profiler Profiler Server side Tracing Server side Tracing Saving and Replaying Traces Saving and Replaying Traces Querying Server-Side Trace Metadata Querying Server-Side Trace Metadata 3 3 Introduction Introduction Query tuning, optimization and Query tuning, optimization and troubleshooting are all possible by troubleshooting are all possible by the ability to view what's going on the ability to view what's going on inside SQL Server inside SQL Server SQL Trace provides a real-time SQL Trace provides a real-time view into what’s going on inside the view into what’s going on inside the database engine and at a very database engine and at a very granular level granular level 4 4 SQL Trace Architecture and Terminology SQL Trace Architecture and Terminology 5 5 SQL Trace is an SQL Server database engine SQL Trace is an SQL Server database engine technology technology SQL Server Profiler is a .NET application that SQL Server Profiler is a .NET application that uses system stored procedures exposing the uses system stored procedures exposing the functionality of SQL Trace functionality of SQL Trace Microsoft.SqlServer.Management.Trace Microsoft.SqlServer.Management.Trace http://msdn.microsoft.com/en- http://msdn.microsoft.com/en- us/library/microsoft.sqlserver.management.t us/library/microsoft.sqlserver.management.t race.aspx race.aspx 6 6 When tracing we monitor for specific When tracing we monitor for specific events which are generated when events which are generated when various actions occur in the database various actions occur in the database engine engine – For example, a user login or the execution of a query For example, a user login or the execution of a query are each actions that cause events to fire are each actions that cause events to fire Each event has an associated Each event has an associated collection of columns that contain the collection of columns that contain the collected data when the event fires collected data when the event fires SQL Server uses a model that SQL Server uses a model that selectively enables data collection as selectively enables data collection as required required – Data is never collected until someone asks for it Data is never collected until someone asks for it There are around 171 events and 65 There are around 171 events and 65 columns to select from columns to select from 8 8 Trace I/O providers send the data Trace I/O providers send the data to the final destination to the final destination The available output formats for The available output formats for trace data are either a file on the trace data are either a file on the database server (or a network database server (or a network share) or a rowset to a client share) or a rowset to a client Both providers use internal buffers Both providers use internal buffers to ensure that if the data is not to ensure that if the data is not consumed quickly enough (written consumed quickly enough (written to disk or read from the rowset) it to disk or read from the rowset) it will be queued will be queued 9 9 The file provider is designed with a The file provider is designed with a guarantee that no event data will be guarantee that no event data will be lost lost If an I/O slowdown occurs so disk If an I/O slowdown occurs so disk writes are not occurring quickly writes are not occurring quickly enough the internal buffers begin to enough the internal buffers begin to fill fill To monitor for these waits watch To monitor for these waits watch the SQLTRACE_LOCK and the SQLTRACE_LOCK and IO_COMPLETION wait types IO_COMPLETION wait types 10 10 The rowset provider is not designed for The rowset provider is not designed for data loss guarantee data loss guarantee If data is not being consumed quickly If data is not being consumed quickly enough and its internal buffers fill it waits enough and its internal buffers fill it waits up to 20 seconds before it begins dropping up to 20 seconds before it begins dropping events in order to free buffers for the sake events in order to free buffers for the sake of getting things moving of getting things moving SQL Server Profiler will then send an SQL Server Profiler will then send an information message informing that some information message informing that some events had been lost and had not been events had been lost and had not been captured captured You can find out if you're headed in that You can find out if you're headed in that direction by monitoring SQL Server's direction by monitoring SQL Server's TRACEWRITE wait type which is TRACEWRITE wait type which is incremented as threads are waiting for incremented as threads are waiting for buffers to free up buffers to free up 11 11 A background trace management A background trace management thread is started whenever at least thread is started whenever at least one trace is active on the server one trace is active on the server – SELECT * FROM sysprocesses SELECT * FROM sysprocesses WHERE cmd = N'TRACE QUEUE TASK' ; WHERE cmd = N'TRACE QUEUE TASK' ; The background thread is The background thread is responsible for: responsible for: – Flushing file provider buffers (done every 4 seconds) Flushing file provider buffers (done every 4 seconds) – Can be seen as a wait_type of Can be seen as a wait_type of SQLTRACE_BUFFER_FLUSH SQLTRACE_BUFFER_FLUSH – Closing rowset-based traces that are considered to be Closing rowset-based traces that are considered to be expired (dropping events for more than 10 minutes) expired (dropping events for more than 10 minutes) There is no provider that writes There is no provider that writes trace data directly to a table trace data directly to a table [...]...Security and Permissions 12 SQL Server 2005 introduces a new permission called ALTER TRACE This is a server- level permission granted to a login principal and allows access to start, stop, or modify a trace (in addition to being able to generate userdefined events) GRANT ALTER TRACE TO ; SQL Trace has a couple of built-in security features to keep passwords secured SQL Trace will... http://msdn.microsoft.com/en-us/library/ms179984.aspx Troubleshooting and Analysis with Traces http://technet.microsoft.com/en-us/library/cc293616.aspx Introducing SQL Trace http://msdn.microsoft.com/en-us/library/ms191006.aspx SQL Profiler Events http://msdn.microsoft.com/en-us/library/ms186265.aspx SQL Profiler Data Columns http://msdn.microsoft.com/en-us/library/aa173882 (sql. 80) aspx Inside Microsoft SQL Server 2005 35 Trace Errors http://blogs.microsoft.co.il/blogs/yaniv_etrogi/TraceErrors.zip... Threads” option allows SQL Server Profiler to reorder the order in which each spid starts to execute events, in order to enhance playback performance However, the order of events will remain consistent with the EventSequence within a given spid 20 Server- Side Tracing 21 sp_trace_create is used to define a trace and specify an output file location This stored procedure returns a handle to the created... This allows to modify the Events/Columns selection and the selected Filters A restart of the SQL Server service removes all trace definitions –Zeros the EventSequence column –If you need your trace always up and running you can launch it from a start up stored procedure 32 Import Performance Monitor Data Default Trace Balackbox Trace 33 ? 34 SQL Server BOL (Books Online) sys.dm_os_wait_stats... the SQL Server Profiler toolbar –If you are on a slow remote connection and your trace is not well filtered you may be in a situation that the icons in the Profiler tool bar are seen as if they were inactive thus disallowing you to stop the trace.16 Saving and Replaying Traces 18 Profiler ships with eight predefined templates –A template is a collection of event and column selections, filters, and. .. on the data using T -SQL –The Trace XML File option saves the data to a text file formatted as XML –The Trace XML File For Replay option also saves the data to an XML text file, but only those events and columns needed for replay functionality are saved 19 Once the data has been saved to a file or table the original trace window can be closed and the file or table reopened via SQL Server Profiler's File... stop and and delete a trace –Traces can be started and stopped multiple times over their lifespan 22 sp_trace_setfilter @TraceID ,@columnid ,@logical_operator ,@comparison_operator ,@value /* @logical_operator: AND (0) or OR (1) @comparison_operator: 0 = Equal, 1 = Not equal, 2 = Greater than, 3 = Less than, 4 = Greater than or equal, 5 = Less than or equal, , 6 = Like, 7 = Not like */ 23 Querying Server- Side... using Profiler to write to a server- side file –Remember that doing so you do not take benefit of the lossless data guarantee 15 offered by the file provider The Events Selection tab allows you to select events that you'd like to trace along with their associated data columns In order to narrow your scope and help ensure that tracing does not cause performance issues SQL Trace offers the ability to... option will be blanked out by SQL 13 Trace Profiler 14 The General tab allows you to control how the trace will be processed by the consumer The default setting is to use the rowset provider displaying the events in real time in the SQL Server Profiler tool window Other available options are –Save the events to a table –Save the events to a file (on either the server or the client) When saving... departments Collected trace data has to be saved and then reopened before a replay can begin SQL Server Profiler offers the following options for saving trace data available from the File menu: –The Trace File option is used to save the data to a file formatted using a proprietary binary format This is generally the fastest way to save the data, and also the smallest in terms of bytes on disk –The . 1 1 ISQL Users Group May 2009 ISQL Users Group May 2009 Tracing and Profiling Tracing and Profiling SQL Server SQL Server Yaniv.Etrogi@gmail.com Yaniv.Etrogi@gmail.com http://blogs.microsoft.co.il/blogs/yaniv_etrogi http://blogs.microsoft.co.il/blogs/yaniv_etrogi 2 2 Over. hour: SQL Trace Architecture and SQL Trace Architecture and Terminology Terminology Security and Permissions Security and Permissions Profiler Profiler Server side Tracing Server side Tracing Saving. engine and at a very granular level granular level 4 4 SQL Trace Architecture and Terminology SQL Trace Architecture and Terminology 5 5 SQL Trace is an SQL Server database engine SQL