943,740 Members | Top Members by Rank

Ad:
  • MS SQL Discussion Thread
  • Unsolved
  • Views: 1149
  • MS SQL RSS
Jun 29th, 2009
0

SQL Query takes lot of time

Expand Post »
Hi evrybody,

My sql SP takes around two to three minutes which is quite long time to execute
the SP select data from three tables publicity(29000 row) publicitysubject(29000 row) & lookuptable(50 rows)

all three tables have clustered index How can i reduce the time

MS SQL Syntax (Toggle Plain Text)
  1.  
  2. USE [ReadWorthyPublication]
  3. GO
  4. /****** Object: StoredProcedure [dbo].[RW_SP_GET_PUBLICITY_DETAIL] Script Date: 06/29/2009 15:03:28 ******/
  5. SET ANSI_NULLS ON
  6. GO
  7. SET QUOTED_IDENTIFIER ON
  8. GO
  9.  
  10.  
  11.  
  12.  
  13. CREATE PROC [dbo].[RW_SP_GET_PUBLICITY_DETAIL]
  14. (
  15. @vParty_Name VARCHAR(200) = NULL,
  16. @iCategory_ID INT= NULL,
  17. @vCity VARCHAR(100) = NULL,
  18. @iCountry_ID INT = NULL,
  19. @iSubject_ID INT = NULL,
  20. @iPublicity_ID INT = NULL,
  21. @vAddress VARCHAR(200) = NULL,
  22. @bActive BIT = NULL
  23.  
  24. )
  25. AS
  26. BEGIN
  27. BEGIN TRY
  28. SELECT PT.Publicity_ID,
  29. PT.Party_Name,
  30. LT.Lookup_ID [Publicity_Category_ID],
  31. LT.Lookup_Item [Publicity_Category_Type],
  32. CT.Country_ID,
  33. CT.Country_Name,
  34. PT.Address,
  35. PT.City,
  36. PT.Phone,
  37. PT.Fax,
  38. PT.Active,
  39. PT.Web_Address,
  40. PT.Email,
  41. PST.Subject_ID
  42.  
  43. FROM [dbo].[Publicity_Table] PT WITH (NOLOCK)
  44. INNER JOIN [dbo].[Country_Table] CT WITH (NOLOCK)
  45. ON PT.Country_ID = CT.Country_ID
  46. INNER JOIN [dbo].[Lookup_Table] LT WITH (NOLOCK)
  47. ON PT.Category_Type_ID = LT.Lookup_ID
  48. INNER JOIN [dbo].[PublicitySubject_Table] PST WITH (NOLOCK)
  49. ON PT.Publicity_ID = PST.Publicity_ID
  50. WHERE ((@vParty_Name IS NULL) OR (PT.Party_Name LIKE '%'+@vParty_Name+'%'))
  51. AND ((@iCategory_ID IS NULL) OR (PT.Category_Type_ID = @iCategory_ID))
  52. AND ((@vCity IS NULL) OR (PT.City LIKE '%' + @vCity + '%'))
  53. AND ((@iCountry_ID IS NULL) OR (PT.Country_ID = @iCountry_ID))
  54.  
  55. AND ((@iSubject_ID IS NULL) OR (PST.Subject_ID = @iSubject_ID))
  56. AND ((@iPublicity_ID IS NULL) OR (PT.Publicity_ID = @iPublicity_ID))
  57. AND ((@vAddress IS NULL) OR (PT.Address LIKE '%' + @vAddress + '%'))
  58. AND ((@bActive IS NULL) OR (PT.Active = @bActive))
  59. ORDER BY PT.Publicity_ID
  60.  
  61.  
  62. END TRY
  63. BEGIN CATCH
  64. EXEC dbo.RW_SP_GET_LOG_ERROR_INFO 'Expense_Table'
  65. END CATCH
  66. END
Similar Threads
Reputation Points: 10
Solved Threads: 0
Newbie Poster
rak4u is offline Offline
21 posts
since Jan 2009
Jun 29th, 2009
0

Re: SQL Query takes lot of time

Just because an index is clustered doesn't necessarily mean it is the best index to use. If you store a large amount of data in the tables, especially if you use varchar(max), text, or image data types, then you should probably create another nonclustered index on the joining identifiers. A clustered index will cover blob data and make the row seeking perform very slowly.

You should run the sprocs as TSQL and have the SQL Server Management Studio output an execution plan. CTLR+M = "Display actual execution plan" then save the execution plan, upload it, and i'll take a look at it.
Featured Poster
Reputation Points: 1749
Solved Threads: 735
Senior Poster
sknake is offline Offline
3,948 posts
since Feb 2009
Jun 30th, 2009
0

Re: SQL Query takes lot of time

thanks sknake,

I am attaching the execution plan
Reputation Points: 10
Solved Threads: 0
Newbie Poster
rak4u is offline Offline
21 posts
since Jan 2009
Jun 30th, 2009
0

Re: SQL Query takes lot of time

write some part of execution plan

1)Select cost 0%
2)Merge Join(inner join) cost 0%
3)Nested Loop(inner join) cost 11%
4)Sort 1%
5)Hash Match(inner join) 13%
6)Clustered index publicity cost 67%
7)clustered index publicitysubject 13%
8)clustered index lookup 0%
clustred index country 0%
Reputation Points: 10
Solved Threads: 0
Newbie Poster
rak4u is offline Offline
21 posts
since Jan 2009
Jun 30th, 2009
0

Re: SQL Query takes lot of time

Please ATTACH the execution plan as a file and also post the create table () statements for your tables with the indexes. This doesn't look like a complicated fix but I'm missing information.
Featured Poster
Reputation Points: 1749
Solved Threads: 735
Senior Poster
sknake is offline Offline
3,948 posts
since Feb 2009

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in MS SQL Forum Timeline: commiting inner query while outer transaction is rollbacked
Next Thread in MS SQL Forum Timeline: Error in Trigger Using TRY CATCH AND IF ELSE





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC