0% found this document useful (0 votes)
43 views

SQLProfiler 2

This document provides an introduction to using SQL Profiler and SQL Query Analyzer to trace queries from ArcMap to SQL Server. It instructs the user to create a trace template in SQL Profiler to capture query events, perform a sample attribute query in ArcMap to select railroad right-of-way features, and view the traced query statement in SQL Profiler. Filters are then applied in SQL Profiler to limit the traced statements to those with at least one read and starting with "SELECT".

Uploaded by

Derek Yuen
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views

SQLProfiler 2

This document provides an introduction to using SQL Profiler and SQL Query Analyzer to trace queries from ArcMap to SQL Server. It instructs the user to create a trace template in SQL Profiler to capture query events, perform a sample attribute query in ArcMap to select railroad right-of-way features, and view the traced query statement in SQL Profiler. Filters are then applied in SQL Profiler to limit the traced statements to those with at least one read and starting with "SELECT".

Uploaded by

Derek Yuen
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Working with SQL Profiler

This tutorial complements the article “Tracing ArcSDE Queries with SQL Profiler,”
by Shannon Shields and Joseph Buckles which appeared in the January–March
2002 issue of ArcUser magazine. It provides an introduction to tracing queries with
SQL Profiler and using SQL Query Analyzer and will teach you how to create a
trace template to capture events passed from ArcMap and ArcSDE to Microsoft SQL
Server. You will also learn how to
Ü Choose events and data columns
Ü Set filters in SQL Profiler
Ü Evaluate query statements captured by SQL Profiler using the SQL Query
Analyzer
SQL Profiler and SQL Query Analyzer are performance monitoring tools that are
included with SQL Server. These tools can be used by a database administrator to
diagnose problems and optimize performance. This tutorial introduces only a small
portion of the functionality available with SQL Profiler and SQL Query Analyzer.
More information on both tools can be found in the HTML Help file, SQL Server
Books Online, available from the Microsoft Web site (www.microsoft.com/sql/techinfo/
productdoc/2000/). HTML Help file, SQL Server Books Online, avail-
able from the Microsoft Web site provides, infor-
To learn more about administering SQL Server with ArcSDE, enroll in ArcSDE mation on SQL Profiler and SQL Querry Analyzer.
Administration for SQL Server, a five-day instructor-led course offered by ESRI.
Visit the ESRI Web site (www.esri.com) for information about this course and other
resources.
Data for This Tutorial
The data for this tutorial, based on a dataset containing land-use parcels for Wilson
County, North Carolina, consists of a personal geodatabase feature class containing
parcel data. Download the archived data file, Parcels.zip, from the ArcUser Online
Web site.
Important: After downloading and unzipping Parcels.zip, open the parcels per-
sonal geodatabase. Copy or import the parcels feature class into ArcSDE. If you
do not have permission to load data into ArcSDE, get your ArcSDE administra-
tor to copy the data and grant you SELECT privileges for the feature class.
Tutorial Overview
Before beginning this tutorial, verify that the ArcSDE server is running and that your
login to SQL Server has appropriate permissions to view the data.
In this tutorial you will
Ü Create a SQL Profiler trace template
Ü Connect to ArcSDE from ArcMap
Ü Perform an attribute query
Ü View the results of the query in SQL Profiler
Ü Copy the traced query to SQL Query Analyzer
Ü View query statistics
Ü Create a column index in ArcCatalog
Ü View query statistics using the new index
Step 1: Create a SQL Profiler trace template
This step defines a new trace definition in SQL Profiler by specifying which events to
trace and what type of information to record for each event. A trace template must be
created first to store the trace definition.
1. From the Start menu, choose Programs > Microsoft SQL Server > Profiler to
start SQL Profiler.
2. From the SQL Profiler menu, choose File > New > Trace Template. Add the TextData, Duration, and Reads columns
to the Selected data list when defining the Trace
3. Click Save As to save the trace template.
Properties.
4. Save the Template as tutorial.tdb in the default directory for SQL Server.
5. In the Trace Properties dialog box, click the Events tab.
6. In the Available Event Classes list, expand the Stored Procedures event category
by clicking on the plus sign (+) next to it.
7. Select SP:StmtCompleted.
8. Click the Add button to add it to the Selected Event Classes list.
9. Click the Data Columns tab.
10. From the Unselected Data column, add the TextData, Duration, and Reads
columns to the Selected data list.
11. Click Save to create the template but do not close SQL Profiler.
Step 2: Connect to ArcSDE from ArcMap
In this step you will query the Parcels feature class using ArcMap to find Railway
right-of-way features. During this step a trace running in SQL Profiler will capture the

Working with SQL Profiler Page 2


SELECT statements submitted by ArcSDE to SQL Server.
1. Start ArcMap with a new empty map.
2. Choose File > Add Data and navigate to the Database Connections folder.
3. Connect to the ArcSDE server where the Parcels feature class is stored.
4. Add the Parcels feature class to the map.
5. Return to SQL Profiler.
6. Start a new trace by choosing File > New > Trace.
7. In the Connect to SQL Server dialog box, click on the ellipsis (…) and choose the
name of your SQL Server from the list.
8. Connect using your SQL Server login. (If necessary, check with your ArcSDE
administrator for the appropriate method to connect).
In the Connect to SQL Server dialog box, click on
9. For Trace name, enter Profiler Tutorial.
the ellipsis (…) and choose the name of your SQL
10. From the Template name dropdown list, choose Tutorial and click Run. Server from the list.
The Trace will start running in its own window. Multiple traces can be run simulta-
neously, each in its own window. Traces can be saved to a trace file on disk or to
a trace table in the database. Because tracing uses system resources that might
otherwise be allocated to other SQL Server processes, do not leave traces running
unless you are monitoring for a particular event.
For the remainder of this tutorial, you will use and modify the Profiler Tutorial trace.
After using Select by Attributes in ArcMap to query the MBL column in the parcels
feature class, you will inspect the results of the query and use filters to limit the
type of statements that SQL Profiler captures. You will also inspect the statements
sent by the gsrvr process to SQL Server, and examine the execution plans for those
statements using SQL Query Analyzer. Finally, you will index the MBL column to
improve query performance. [The giomgr in ArcSDE spawns a gsrver process for each single-
user application connection. The gsrver process handles the communication between ArcMap and SQL
Server.]
Step 3: Perform an attribute query in ArcMap
1. Return to ArcMap and choose Selection > Select by Attributes.
2. In the SELECT * FROM text box, enter
MBL = ‘Railroad_right_of_way’
3. Click the Verify button. Choose Selection > Select by Attri-
butes to query for Railroad right-
4. After the syntax is verified, click Apply to execute the query. Forty-one features of-way features.
should be selected and highlighted.

Working with SQL Profiler Page 3


Step 4: View the results of the query in SQL Profiler
Return to SQL Profiler and examine the SP:StmtCompleted statements. These state-
ments are queries that the gsrvr process submitted to SQL Server to fetch the
Railroad right-of-way features from the Parcels feature class. The trace captured
many statements and the majority of them have a value of zero (0) for the Duration,
CPU, Reads, and Writes columns. These statements aren’t useful for purposes of this
tutorial. A filter will be applied so that the trace will capture only statements containing
a value equal to or greater than one (1) in the Reads column. Another filter will be
added that will allow SQL Profiler to return only SELECT statements.
1. In SQL Profiler, click the Stop Trace button.
2. Click the Properties button.
3. In the Trace Properties dialog box, click on the Filters tab.
The the majority of the statements have a
4. Expand Reads from the Trace Event Criteria list. value of zero (0) for the Duration, CPU, Reads,
5. Expand Greater Than or Equal To. and Writes columns.
6. Enter 1 in the textbox and press Enter.
7. Expand TextData under Trace Event Critera.
8. Expand Like and select% in the text box. Press Enter.
9. Click Run.
These two filters will limit the events that are returned by the trace. The Reads
event criteria is the number of logical reads performed by the server executing the
statement. The first filter specifies that only operations that perform at least one
logical read will be returned by the trace. The TextData event criteria returns text
contained within the event data and specifies that only statements that begin with
the word SELECT will be returned by the trace. With the filters set, rerun the query
in ArcMap.
1. Return to ArcMap choose Selection > Clear Selected Features.
2. Choose Selection > Select By Attributes.
3. Click Apply to execute the query.
4. Return to SQL Profiler and examine the new results. You should now see a single
SP:StmtCompleted statement.
5. Click on the SP:StmtCompleted event and examine the text of the statement in Setting a filter will limit the statements that
the lower pane of the trace window. This is the full text of the query you submitted SQL Profiler captures.
from ArcMap.

Working with SQL Profiler Page 4


Step 5: Copy the traced query to SQL Query Analyzer
1. In SQL Profiler, click the Stop Trace button to stop the Profiler Tutorial trace.
2. Select the entire text of the SP:StmtCompleted SELECT statement in the lower
pane of the query window and press Ctrl+C to copy it.
3. Choose Start > Programs > Microsoft SQL Server > SQL Query Analyzer.
4. Connect to your SQL Server with the appropriate connection method. In the query SQL Query Analyzer uses icons to graphically rep-
window, right-click and choose Paste to paste the SP:StmtCompleted SELECT resent the execution of specific statements and
statement into SQL Query Analyzer. queries in SQL Server.
5. If the feature class is stored in a database other than the one that your login
automatically connects to, choose that database from the Database dropdown
list.
6. Press Ctrl+K to show the execution plan. [The execution plan in rather than displaying
them in tabular form. It can also accessed by choosing Query > Display Execution Plan. For an
explanation of the icons used, consult SQL Server Books Online.]
7. Choose Tools > Tools > Options from the SQL Profiler menu.
8. In the Options dialog box, click the Connection Properties tab.
9. Check the box next to Set Statistics I/O option and click OK.
Now the SQL Query Analyzer will show the I/O statistics for statements executed
from the query window. You will examine these values after executing the query.
Step 6: View query statistics
1. Press Ctrl+E to execute the SP:StmtCompleted SELECT statement copied from
SQL Profiler to SQL Query Analyzer.
2. Scroll to the end of the query results to see the I/O statistics for the Business and
Feature tables for the Parcels feature class.
Questions
Ü How many logical reads were performed on the Parcels table. _____
(Logical reads represent the total number of data and index pages that were read
by SQL Server to return query results.)
Ü How many features were selected by this query? ___________
Create a column index on MBL in ArcCatalog
Note that relatively few features were selected compared to the number of pages
that were read. Next, look at the execution plan by clicking the Execution Plan tab
at the bottom of the query window. The query was resolved by scanning the entire
Parcels business table for values that matched the query’s WHERE clause (MBL =

Working with SQL Profiler Page 5


‘Railroad_right_of_way’). This is not the most efficient method of searching for values.
In the next section, you will create a column index and observe what happens when
the query uses this index.
Step 7: Create a column index in ArcCatalog
1. Without saving the map document, close ArcMap.
The new query executes uses an Index Seek and
2. Open ArcCatalog and navigate to your ArcSDE Server connection. a Bookmark Lookup operation to find the features
3. Right-click the Parcels feature class and choose Properties. whose MBL values matched the query.
4. In the Feature Class Properties dialog box, click the Indexes tab.
5. In the Attribute Indexes section, click the Add button. Summary
6. In the Attribute Indexes text box, type MBL_idx. Select MBL from the Fields In this tutorial you learned how to create and
Available list and add it to the Fields Selected list. execute a trace from SQL Profiler and saw one
7. Click Apply then OK. way in which you could use the statements
returned by a trace. After isolating statements
You have just created an index on the MBL column. What affect do you think this in SQL Profiler, the SQL Query Analyzer was
will have on the execution of the query? used to asses the impact of these statements on
1. Return to SQL Query Analyzer. system performance.
2. In the query window, above the SELECT query, insert the following line
dbcc dropcleanbuffers

3. Press Ctrl+E to execute both statements.


Questions
Ü How many logical reads were performed for the Parcels table? ________
Ü Were there fewer logical reads this time? ________
View the execution plan (Ctrl+K). The query should have executed using an Index
Seek and a Bookmark Lookup operation to find the features whose MBL values
matched the query. An Index Seek is used by the Query Optimizer when an index
is present and can be searched for explicit values. A Bookmark Lookup uses a
bookmark (i.e., index key) to lookup a corresponding row in another table. The
Bookmark Lookup operation found the corresponding features in the Feature table
for the Parcels feature class.
For queries that return a small number of features, using the more complex Index
Seek and Bookmark Lookup, instead of an Index Scan operation, is much more
efficient. The SQL Server Index Tuning Wizard can help you determine if commonly
executed queries would benefit from column indexes. After examining the query, close
SQL Query Analyzer and SQL Profiler.

Working with SQL Profiler Page 6

You might also like