| | |
SQL Query takes lot of time
Please support our MS SQL advertiser: Intel Parallel Studio Home
![]() |
•
•
Join Date: Jan 2009
Posts: 21
Reputation:
Solved Threads: 0
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
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)
USE [ReadWorthyPublication] GO /****** Object: StoredProcedure [dbo].[RW_SP_GET_PUBLICITY_DETAIL] Script Date: 06/29/2009 15:03:28 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROC [dbo].[RW_SP_GET_PUBLICITY_DETAIL] ( @vParty_Name VARCHAR(200) = NULL, @iCategory_ID INT= NULL, @vCity VARCHAR(100) = NULL, @iCountry_ID INT = NULL, @iSubject_ID INT = NULL, @iPublicity_ID INT = NULL, @vAddress VARCHAR(200) = NULL, @bActive BIT = NULL ) AS BEGIN BEGIN TRY SELECT PT.Publicity_ID, PT.Party_Name, LT.Lookup_ID [Publicity_Category_ID], LT.Lookup_Item [Publicity_Category_Type], CT.Country_ID, CT.Country_Name, PT.Address, PT.City, PT.Phone, PT.Fax, PT.Active, PT.Web_Address, PT.Email, PST.Subject_ID FROM [dbo].[Publicity_Table] PT WITH (NOLOCK) INNER JOIN [dbo].[Country_Table] CT WITH (NOLOCK) ON PT.Country_ID = CT.Country_ID INNER JOIN [dbo].[Lookup_Table] LT WITH (NOLOCK) ON PT.Category_Type_ID = LT.Lookup_ID INNER JOIN [dbo].[PublicitySubject_Table] PST WITH (NOLOCK) ON PT.Publicity_ID = PST.Publicity_ID WHERE ((@vParty_Name IS NULL) OR (PT.Party_Name LIKE '%'+@vParty_Name+'%')) AND ((@iCategory_ID IS NULL) OR (PT.Category_Type_ID = @iCategory_ID)) AND ((@vCity IS NULL) OR (PT.City LIKE '%' + @vCity + '%')) AND ((@iCountry_ID IS NULL) OR (PT.Country_ID = @iCountry_ID)) AND ((@iSubject_ID IS NULL) OR (PST.Subject_ID = @iSubject_ID)) AND ((@iPublicity_ID IS NULL) OR (PT.Publicity_ID = @iPublicity_ID)) AND ((@vAddress IS NULL) OR (PT.Address LIKE '%' + @vAddress + '%')) AND ((@bActive IS NULL) OR (PT.Active = @bActive)) ORDER BY PT.Publicity_ID END TRY BEGIN CATCH EXEC dbo.RW_SP_GET_LOG_ERROR_INFO 'Expense_Table' END CATCH END
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.
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.
![]() |
Similar Threads
- Hi! Reading from a file takes lot of time? (Shell Scripting)
- Mysql select query takes more time (MySQL)
- help in sql query (PHP)
- Time - out problem (VB.NET)
- retrieving a particular value with a sql query (PHP)
- onclick dropdown event (ASP.NET)
- Javascript array from sql query (JSP)
- PHP/SQL query help (PHP)
Other Threads in the MS SQL Forum
- Previous Thread: commiting inner query while outer transaction is rollbacked
- Next Thread: Error in Trigger Using TRY CATCH AND IF ELSE
| Thread Tools | Search this Thread |






