Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Optimize SQL Query
Message
 
 
To
31/07/2009 12:26:31
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Environment versions
Visual FoxPro:
VFP 9 SP2
Database:
MS SQL Server
Application:
Desktop
Miscellaneous
Thread ID:
01415652
Message ID:
01415685
Views:
47
>>To see if the query use the index you could try your query in SSMS and add Actual execution plan in query. then you could see if the SQL Server use Index Seek, Index scan or table scan. Try to write your query that way so SQL to use Index Seek.
>
>From my testing it seems I can only get index seek if the fields I want to pull back are also part of the index and I don't have to include all the fields in the index expression or in order
>
>
>  *-- Partial match to index
>  SELECT holiday FROM table WHERE company = MyComp' AND fiscal = '2009'
>  *--- Returns back Index seek with corect index
>
>  *-- Partial match to index with fields out of order
>  SELECT holiday FROM table WHERE fiscal = '2009' AND company = MyComp'
>  *--- Returns back Index seek with correct index
>
>  *-- Skipping first field in index expression 
>  SELECT holiday FROM table WHERE fiscal = '2009' AND holiday = 'Jan 1, 2009'
>  *--- Returns back Index scan with correct index
>
>  *-- Return fields not in index and partial match on index
>  SELECT * FROM table WHERE company = 'MyComp' AND fiscal = '2009'
>  *-- Returns Index Scan and doesn't use the correct index uses primary key
>
>  *-- Return fields not in index and full match on index
>  SELECT * FROM table WHERE company = 'MyComp' AND fscal = '2009' AND holiday = 'Jan 1, 2009'
>  *-- Even with exact match in where still Index Scan with primary key
>
Use first and last variations as they seem to be the best.
If it's not broken, fix it until it is.


My Blog
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform