2012-04-16 17 views
13

私はこの問題を数週間続いています。問題は、クエリがウェブサイトで実行するのに4〜5分かかり、ssmsで2〜3秒かかることです。また、私はcustomerId変数を追加するようなこのクエリを変更した後、Webページ上ですばやく実行し始めますが、翌日までには再び遅くなることがわかりました。問題のクエリは次のとおりです。sqlがasp.netで遅く遅くなります

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 

他の2つのサイトで同じクエリを実行していますが、問題はありません。サイト間の唯一の違いは、それらが異なるデータベース上で実行され、スローサイトが他のサイトと比較して2倍以上の製品(54000製品)を持っていることです。3つのサイトとそのデータベースはすべて同じマシン。

+1

回答にはマークを付ける必要があります。ほとんどの場合、パラメータスニッフィングの問題があった可能性があります – mellodev

答えて

18

パラメータスニッフィングの問題が発生する可能性があります。

私は問題を完全に理解するために、Erland SommarskogのSlow in the Application, Fast in SSMS?を読むことをお勧めします(長い記事ですが、非常に良い)。

8

ASP.NetアプリケーションとSSMSセッションのsys.dm_exec_sessionsを見てください。あなたのSET設定のうちの少なくとも1つが異なると思われます。これは異なる計画に寄与することができます(最終的にはパラメータスニッフィングに起因します)。アプリ側は通常悪化します。その価値は、非常に時折私たちは同じに実行する何のため

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年に1回である可能性があります。あなたは良い一週間を過ごして、他の答えに記載されているすばらしい資源をすべて読んで消化することができます。 SQL Serverを停止して起動します。

これは治療に役立ちます。

この問題は一般的に、手元の問題に直接関係しないさまざまなスキーマ/ sp/view改造後に発生することに気付きました。

関連する問題