我有一个存储过程,似乎是我的应用程序中的瓶颈。问题在于它所使用的表格更新频繁(每秒大约一次记录一次) - 所以索引不是微不足道的。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