2012-04-16 5 views
13

저는 몇 주 동안이 문제가 발생했습니다. 문제는 쿼리가 웹 사이트에서 실행되는 데 4-5 분이 걸리고 ssms에서 실행되는 데 최대 2 ~ 3 초가 걸리는 것입니다. 또한 나는 customerId 변수를 추가하는 것과 같이이 쿼리를 변경하면 웹 페이지에서 빠르게 실행되기 시작하지만 다음날에는 다시 느려지는 것을 발견했습니다. 문제의 쿼리는 다음 중 하나입니다 : asp.net에서 ssms가 느리게 실행됩니다.

DECLARE @customerID INT 
SET @customerID = @CustID 
DECLARE @MyTable table(
Iden int NOT NULL IDENTITY(1,1), 
ProductID int) 

INSERT INTO @MyTable(ProductID) 
SELECT P.ProductID FROM Product P WITH (NOLOCK) 
left join Compunix_ProductMMY cpmmy with (nolock) on p.ProductID = cpmmy.ProductID 
left join Compunix_CustomerMMY ccmmy with (nolock) on ccmmy.mmyid = cpmmy.mmyid 
WHERE P.Deleted=0 AND P.Published=1 and (ccmmy.customerid = @customerID OR cpmmy.productid IS NULL) 

SELECT c.Name, c.SeName, c.CategoryID 
FROM Category c WITH (NOLOCK) 
JOIN ProductCategory PC With (NOLOCK) ON C.CategoryID = PC.CategoryID 
JOIN @MyTable MT ON PC.ProductID=MT.ProductID 
WHERE C.Published = 1 
GROUP BY c.Name, c.SeName, c.CategoryID 
ORDER BY c.Name 

난 그냥 잘 작동이 다른 사이트에서 실행되는 동일한 쿼리가 있습니다. 사이트 간의 유일한 차이점은 서로 다른 데이터베이스에서 실행되고 느린 사이트는 다른 사이트와 비교하여 두 배 이상의 제품 (54000 제품)을 보유한다는 것입니다. 세 사이트와 데이터베이스는 모두 같은 컴퓨터에서 호스팅됩니다 .

+1

답변을 표시해야합니다. 대체로 매개 변수 스니핑 문제가있는 것 같습니다 – mellodev

답변

18

매개 변수 스니핑 문제가 발생할 가능성이 있습니다.

Erland Sommarskog가 Slow in the Application, Fast in SSMS?을 읽고이 문제에 대한 완전한 이해를 얻으시기 바랍니다 (긴 기사이지만 아주 좋음).

8

ASP.Net 응용 프로그램과 SSMS 세션에 대해 sys.dm_exec_sessions를 살펴보십시오. 귀하의 SET 설정 중 적어도 하나가 다른 것으로 추측됩니다. 이것은 다른 계획에 기여할 수 있습니다 (궁극적으로 이것은 매개 변수 스니핑에 기인합니다). 앱 사이드는 보통 악화됩니다.

훨씬 더 자세한 내용이 다른 질문을 참조하십시오 : 그 가치가 아주 가끔 우리가 같은으로 실행 무엇을 위해

Stored procedure slow when called from web, fast from Management Studio

Procedure times out from ADO.NET but not in SSMS

Query times out when executed from web, but super-fast when executed from SSMS

ADO .NET vs. SQL Server Management Studio - ADO performs worse

+0

SET 설정이란 무엇입니까? – crh225

+0

@ crh225 'SET ARITHABORT','SET QUOTED_IDENTIFIER' 등. https://technet.microsoft.com/en-us/library/ms190707(v=sql.105).aspx –

1

문제; 1 년에 한 번 수 있습니다. 다른 해답에서 언급 한 멋진 자원을 모두 읽고 읽고 소화 할 수 있습니다. 그렇지 않으면 할 수 있습니다. SQL Server를 중지하고 시작하십시오.

대우를받습니다.

우리는이 문제가 일반적으로 당면한 문제와 직접적으로 관련이없는 다양한 스키마/sp/view mods 후에 발생한다는 것을 알아 챘습니다.

관련 문제