我和我的同事們有一個關於SQL Server 2008查詢長度和SQL Server Optimizer的問題。存儲過程中where子句的最大數量
我們正在計劃生成一些可能有很多參數的存儲過程。在我們的存儲過程中,我們只需從連接其他表的表中選擇一些值。
我們的存儲過程看起來像這樣
CREATE PROCEDURE QueryTable
@Parameter001 nvarchar(20),
@Parameter002 int,
@Parameter003 datetime,
@Parameter004 decimal(11,2),
@Parameter005 date,
@Parameter006 varchar(150),
@Parameter007 int,
@Parameter008 decimal(5,2),
@Parameter009 nvarchar(10),
@Parameter010 nvarchar(200),
@Parameter011 nvarchar(50) --,
--...and so on, there are probably 50 to 100 parameters here
AS
BEGIN
SET NOCOUNT ON;
SELECT ID, COL01, COL02, COL03, COL04, COL05 from TestTable T
LEFT JOIN AnotherTable A On T.SomeColomn = A.SomeColumn
LEFT JOIN AThirdTable ATT On A.ThirdTableID = ATT.Id
--and so on, probably 5-10 Tables joined here
WHERE
T.Col02 = @Parameter001 AND
T.Col05 = @Parameter004 AND
ATT.SomeColumnContainingData = @Parameter027
A.AnotherID = @Parameter050
--probably 50 to 100 conditions here (Number of conditions equals number of parameters)
END
GO
我們的問題: 是否有哪裏條件查詢優化和SQL服務器緩存可以考慮量的限制嗎? 如果沒有這樣的技術限制,那麼在這種情況下可以應該使用多少條件,是否有最佳做法?
(http://technet.microsoft.com/en-us/library/ms143432.aspx「This」)是SQL Server 2008的鏈接。 – DrummingCoder 2010-01-21 10:26:49