![]() | |
![]() |
| | Thread Tools | Display Modes |
#21
| |||
| |||
|
|
If your query is the same as what the application runs, except for specific values being plugged in here and there, then the application will generally get the same execution plan that you do. Does QA run your query reasonably quickly? Based on the Profiler trace, does the application seem slow because it runs slow queries, or because it runs an inefficiently large number of queries which are reasonably fast individually? |
#22
| |||
| |||
|
|
On Mar 30, 8:31 am, Ed Murphy <emurph... (AT) socal (DOT) rr.com> wrote: If your query is the same as what the application runs, except for specific values being plugged in here and there, then the application will generally get the same execution plan that you do. Does QA run your query reasonably quickly? Based on the Profiler trace, does the application seem slow because it runs slow queries, or because it runs an inefficiently large number of queries which are reasonably fast individually? Here is the query I ran, it returns 70.8K rows in 2 seconds via QA: Select M.MatterID From Matters M Inner Join MatterConflicts MC On MC.Matters = M.Matters Inner Join Matters M2 On M2.Matters = MC.HitMatters Inner Join MatterConflictHits MCH On MCH.MatterConflicts = MC.MatterConflicts Now the application is doing all kinds of things, probably more complicated than my query above. Honestly I don't know enough about Profiler to isolate one operation. I did check it out and there are many, many sp_cursorexecute, prepare and close statements, along with many select fields from tables queries. I dunno, I doubt I will be able to make any sort of significant impact on performance without access to the code. FYI: This program is a legal case management software called Prolaw by Thomson-Elite...it *sucks* royally! LOL. |
#23
| |||
| |||
|
|
I am tasked with maintaining a large database still on SQL Server 7.0. Performance is an issue not surprisingly and I've targeted two rather large tables to see what I can do with the indexes. The 2 tables are described as follows: MatterConflicts: Fields: MatterConflicts varchar(16), Matters varchar(16), HitMatters varchar(16), IsInclude varchar(1) Index: MatterConflicts MatterConflictHits: Fields: MatterConflictHits varchar(16), MatterConflicts varchar(16), ColumnLabel varchar(40), Hit varchar(100) Index: MatterConflictHits Now MatterConflicts row count is approaching 500K and MatterConflictHits is approaching 1 Million rows. There are only one index on each table, each for the table's primary key. The Matters field in MatterConflicts table joins back with a table that users access directly. Question is, would it be beneficial to add, or modify the existing indexes for these tables to include both the primary and foreign keys, as well as an additional field? Doesn't seem to be to be very beneficial to have an index that only includes the primary key. So for example I'm thinking of creating an index for MatterConflicts that includes the fields: MatterConflicts, Matters, and HitMatters. Thoughts? Suggestions? Thanks... |
![]() |
| Thread Tools | |
| Display Modes | |
| |