parameter-sniffing

    9熱度

    2回答

    我都接受,如果沒有值傳入稍後設置爲當前日期的日期輸入存儲過程: CREATE PROCEDURE MyProc @MyDate DATETIME = NULL AS IF @MyDate IS NULL SET @MyDate = CURRENT_TIMESTAMP -- Do Something using @MyDate 我有問題如果@MyDate作爲NUL

    5熱度

    4回答

    今天再次,我似乎是SQL Server 2005中似乎是參數嗅探的一個主要問題。 我有一個查詢比較一些結果與已知的良好結果。我在結果和已知的良好結果中添加了一列,以便每個月都可以在兩側加載新月結果,並僅比較當前月份。新列首先在聚集索引中,所以新月將增加到最後。 我添加了一個標準來我WHERE條款 - 這是代碼生成的,所以這是一個常量: WHERE DATA_DT_ID = 20081231 - 因

    3熱度

    1回答

    當使用SqlDataAdapter.fill()運行一個存儲過程時,我注意到在管理工作室中運行相同的存儲過程只花費了1-2秒秒。我開始搞亂各種參數,試圖找到問題,最終我做到了,儘管這很奇怪。我發現,如果我簡單地在sproc中聲明瞭三個新變量並直接將參數的內容複製到它們中,然後在sproc的主體中使用這些新變量,那麼fill()方法會下降到1-2秒,就像直接在管理工作室運行sproc。換句話說,這樣

    0熱度

    2回答

    有人可以解釋爲什麼這會起作用。這是scenerio。我有一個存儲過程,它開始運行緩慢。然後我選擇一個參數並聲明一個變量來存放它的值,並在proc中使用聲明的變量而不是參數。這個過程將會大大加快。 我認爲這與緩存的計劃和統計數據有關,但我不確定。它是否隨着數據庫的增長和更改而變得過時,以便緩存計劃針對與當前數據狀態不同的過去數據狀態進行優化? 謝謝。

    2熱度

    1回答

    我曾經看到有人建議將參數複製到本地變量以避免參數在存儲過程中嗅探。假設你有 CREATE PROCEDURE List_orders_3 @fromdate datetime AS DECLARE @fromdate_copy datetime SELECT @fromdate_copy = @fromdate SELECT * FROM Orders WHERE OrderDate > @

    4熱度

    2回答

    使用SQL Server 2008,我有一個簡單的存儲過程,其內容是 DELETE FROM [ABC].[dbo].[LookUpPermissions] WHERE Code = @Code 在最近的代碼審查,DBA說我應該「增加參數嗅探」,我相信意味着我應該考慮參數嗅探。我從來沒有這樣做過,我沒有任何性能問題與查詢,所以我認爲這是沒有必要的。 雖然我認爲答案可能是用戶偏好,但是最好的做