Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
Author |
Topic |
winman
Starting Member
26 Posts |
Posted - 2013-04-15 : 03:33:50
|
hi I'm writting the below given query to retrive info about task for abc from the table reminder in reminder database....is there any way to reduce the cost of this querySELECT [Reminder].* FROM [Reminder].dbo.[Reminder] WHERE ( Charindex('abc',CAST([Reminder].dbo.[Reminder].[AllotedTo] AS VARCHAR(MAX)))>0 AND CAST([Reminder].dbo.[Reminder].[Date] as smalldatetime) <= '23-Aug-2012' AND (Charindex('~!',CAST([Reminder].dbo.[Reminder].[F6Row] AS VARCHAR(MAX)))=0 or [Reminder].dbo.[Reminder].[F6Row] Is NULL ) ) OR ( Charindex('abc',CAST([Reminder].dbo.[Reminder].[DiscussWith] AS VARCHAR(MAX)))>0 AND (CAST([Reminder].dbo.[Reminder].[FollowUpDate] as smalldatetime) Is Null OR CAST([Reminder].dbo.[Reminder].[FollowUpDate] as smalldatetime) = '' ) AND CAST([Reminder].dbo.[Reminder].[Date] as smalldatetime) <= '23-Aug-2012' AND (Charindex('~!',CAST([Reminder].dbo.[Reminder].[F6Row] AS VARCHAR(MAX)))=0 or [Reminder].dbo.[Reminder].[F6Row] Is NULL ) ) OR ( Charindex('abc',CAST([Reminder].dbo.[Reminder].[DiscussWith] AS VARCHAR(MAX)))>0 AND CAST([Reminder].dbo.[Reminder].[FollowUpDate] as smalldatetime) <= '23-Aug-2012' AND (Charindex('~!',CAST([Reminder].dbo.[Reminder].[F6Row] AS VARCHAR(MAX)))=0 or [Reminder].dbo.[Reminder].[F6Row] Is NULL ) ) ORDER BY cast([Reminder].[Date] as smalldatetime) Desc |
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2013-04-15 : 06:36:22
|
there are lots of redundant conditions. try like belowSELECT [Reminder].* FROM [Reminder].dbo.[Reminder] WHERE ( Charindex('abc',CAST([Reminder].dbo.[Reminder].[AllotedTo] AS VARCHAR(MAX)))>0 OR Charindex('abc',CAST([Reminder].dbo.[Reminder].[DiscussWith] AS VARCHAR(MAX)))>0 )AND ((CAST([Reminder].dbo.[Reminder].[Date] as smalldatetime) <= '20120823' AND (CAST([Reminder].dbo.[Reminder].[FollowUpDate] as smalldatetime) Is Null OR CAST([Reminder].dbo.[Reminder].[FollowUpDate] as smalldatetime) = '' )) OR CAST([Reminder].dbo.[Reminder].[FollowUpDate] as smalldatetime) <= '20120823' )AND (Charindex('~!',CAST([Reminder].dbo.[Reminder].[F6Row] AS VARCHAR(MAX)))=0 or [Reminder].dbo.[Reminder].[F6Row] Is NULL ) ) ------------------------------------------------------------------------------------------------------SQL Server MVPhttp://visakhm.blogspot.com/https://www.facebook.com/VmBlogs |
|
|
|
|
|