|
sql
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
How do I measure the cost of compiling an execution plan?
them to move to stored procedures. However certain managers don't believe that the compilation of ad hoc queries and the fact that they usually aren't reused is really anything to worry about. They think that the cost of doing this is minimal and instead want to focus on tuning bad queries. I of course agree that badly written queries should be tuned but it's also a basic tenet of databases users that stored procedures should always be used where possible to take advantage of precompilation and plan caching. However I don't know how to actually prove that with data. How can I measure what the overhead is for compiling and building an execution plan for an ad hoc query vs. the putting the query in a stored procedure? I've looked at the graphical execution plan for an ad hoc query and a stored procedure and they look the same. Thanks SET STATISTICS TIME ON
The first set of data before the query is executed will be the time for parse and compile. The stats after the data is returned will be the time to execute. If the first set of data shows 0, it means the plan is being reused, and note that SQL Server 2000 can reuse plans for queries other than stored procedures. -- Show quoteHide quoteHTH ---------------- Kalen Delaney SQL Server MVP www.SolidQualityLearning.com <pshro***@gmail.com> wrote in message news:1116376117.157139.259730@g44g2000cwa.googlegroups.com... > My company is using a lot of ad hoc queries and I am trying to convince > them to move to stored procedures. However certain managers don't > believe that the compilation of ad hoc queries and the fact that they > usually aren't reused is really anything to worry about. They think > that the cost of doing this is minimal and instead want to focus on > tuning bad queries. > > I of course agree that badly written queries should be tuned but it's > also a basic tenet of databases users that stored procedures should > always be used where possible to take advantage of precompilation and > plan caching. However I don't know how to actually prove that with > data. > > How can I measure what the overhead is for compiling and building an > execution plan for an ad hoc query vs. the putting the query in a > stored procedure? I've looked at the graphical execution plan for an ad > hoc query and a stored procedure and they look the same. > > Thanks > In addition to that you need to consider how much memory all those adhoc
plans are taking up in the procedure cache. I have no idea what yours is like but I have seen systems with all adhoc queries use well over 1GB for procedure cache on 32 bit systems and larger on 64 bit. That memory can better be utilized for data and index caching instead of useless plans. -- Show quoteHide quoteAndrew J. Kelly SQL MVP <pshro***@gmail.com> wrote in message news:1116376117.157139.259730@g44g2000cwa.googlegroups.com... > My company is using a lot of ad hoc queries and I am trying to convince > them to move to stored procedures. However certain managers don't > believe that the compilation of ad hoc queries and the fact that they > usually aren't reused is really anything to worry about. They think > that the cost of doing this is minimal and instead want to focus on > tuning bad queries. > > I of course agree that badly written queries should be tuned but it's > also a basic tenet of databases users that stored procedures should > always be used where possible to take advantage of precompilation and > plan caching. However I don't know how to actually prove that with > data. > > How can I measure what the overhead is for compiling and building an > execution plan for an ad hoc query vs. the putting the query in a > stored procedure? I've looked at the graphical execution plan for an ad > hoc query and a stored procedure and they look the same. > > Thanks > Thanks for your reply. Would I look at the size of syscacheobjects with
sp_spaceused to determine the amount of memory that the procedure cache is using? Use DBCC MEMORYSTATUS for that:
http://support.microsoft.com/?id=271624 -- Show quoteHide quoteTibor Karaszi, SQL Server MVP http://www.karaszi.com/sqlserver/default.asp http://www.solidqualitylearning.com/ <pshro***@gmail.com> wrote in message news:1116388073.318788.301230@f14g2000cwb.googlegroups.com... > Thanks for your reply. Would I look at the size of syscacheobjects with > sp_spaceused to determine the amount of memory that the procedure cache > is using? > No, syscacheobjects is a pseudo-table and takes no space on disk, so
sp_spacedused reports 0. The size of the plans is in the pagesused column, so you can just retrieve the SUM of pagesused. -- Show quoteHide quoteHTH ---------------- Kalen Delaney SQL Server MVP www.SolidQualityLearning.com <pshro***@gmail.com> wrote in message news:1116388073.318788.301230@f14g2000cwb.googlegroups.com... > Thanks for your reply. Would I look at the size of syscacheobjects with > sp_spaceused to determine the amount of memory that the procedure cache > is using? >
Other interesting topics
Can I use Top here and I'm stuck on how to get the results I'm looking for
Effects of Intel Hyperthreading on SQL Server Restoring model and msdb databases goes to wrong file locations DBCC CHECKDB Error select string rows stored procedure return table Transaction Log Backup complete yet shows as failed? Upgrading DTSRun.exe from SQL Server 7.0 to SQL Server 2000 Performance Tuning Enterprise vs. Standard |
|||||||||||||||||||||||