我有一個存儲過程,似乎是我的應用程序中的瓶頸。問題在於它所使用的表格更新頻繁(每秒大約一次記錄一次) - 所以索引不是微不足道的。SQL索引問題
似乎對於SP的每一次X運行 - 有一次運行需要大約1.5秒(其他運行約300-400ms或更少)。在我的解釋中,索引樹正在更新。
RBDMS是SQL Server 2008 R2。
這裏是SP:
的PK存檔和現場表「PK1」(例如) - 這是不被用在這裏。
的FK是用戶ID(這是一個Table_Users PK)
INSERT INTO Table_Archive
SELECT userid, longitude, latitude, direction, RcvDate
FROM Table_Live
WHERE userid = @userid
DELETE FROM Table_Live WHERE userid = @userid
-- write down the new location
INSERT INTO
Table_Live (userid, longitude, latitude, direction)
VALUES (@userid, @lon, @lat, @dir)
UPDATE Table_Users
SET location = 'true'
WHERE loginid = (SELECT MAX(loginid) as loginid
FROM Logins
WHERE userid = @userid)
任何想法,什麼可以做,使之達到最佳運行狀態?最好應該在200ms以下運行。
@marc_s - 所有錶行都在第一條語句中顯示。存檔和實時表的相同行。 – Roman 2011-05-02 07:53:23
@marc_s - 存檔表的數百萬行和Live表的數千行。 – Roman 2011-05-02 07:53:53
是的 - 但**類型**是那些列?那些**全**列?哪些指數已經在plcae? – 2011-05-02 07:53:54