• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 253
  • Last Modified:

optimize where clause on a query

Hello,

I have checked execution plan.
How can I optimize this query :
SELECT 
[SplitId],[PKey],[affId],[SalesKey]  ,[Trader]   ,[NetBro] ,[Ccy] ,[NetBroFuncCcy] ,[FuncCcy] ,[Side] ,[NetBroNoDiscount]
FROM   [dbo].[FI_Splits]
WHERE affDate<CAST(ROUND(CAST(getdate() AS float)-0.25,0)AS Datetime)
   and affDate > cast(   year(current_timestamp)-2 as char(4)) +'0101' 

Open in new window


Thanks
0
bibi92
Asked:
bibi92
1 Solution
 
Éric MoreauSenior .Net ConsultantCommented:
do you have an index on affDate?

have you tried casting the AND clause as a date?
CAST( cast(   year(current_timestamp)-2 as char(4)) +'0101' AS DATETIME)
0
 
Jim HornMicrosoft SQL Server Developer, Architect, and AuthorCommented:
For starters, the WHERE clause is doing a comparison with both a datetime and a character values?  That would mean implicit conversion, possibly for every row.

Better to do your formulas in scalar variables of the same data type, then refer to those variables in your WHERE clause.
0
 
Scott PletcherSenior DBACommented:
Cluster dbo.FI_Splits by affDate if that is how you typically query that table (instead of the existing cluster on the id/identity column).  Add a nonclustered index on the id/identity column if you actually use it to do lookups w/o specifying a small affDate range.

To avoid unwanted column conversions, use varchar values for both affDate comparison values:

...same as before...
WHERE affDate < CONVERT(char(8), CAST(ROUND(CAST(getdate() AS float)-0.25,0) AS Datetime), 112)...same as before...
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Introducing Cloud Class® training courses

Tech changes fast. You can learn faster. That’s why we’re bringing professional training courses to Experts Exchange. With a subscription, you can access all the Cloud Class® courses to expand your education, prep for certifications, and get top-notch instructions.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now