我不明白为什么只更新一个表中的21行要花这么多时间。
步骤1:我正在从stagintable创建#tentable(它的数据永远不会超过20行)
CREATE TABLE #tmpTable (
ID INT NULL,
UniqueID INT NULL,
ReportDate VARCHAR(15) NULL,
DOB Datetime NULL,
Weight VARCHAR(15) NULL,
Height VARCHAR(15) NULL)
INSERT INTO #tempTable (
ID,
UniqueID,
ReportDate,
DOB,
Weight,
Height)
SELECT
A.ID,
A.UniqueID,
A.ReportDate,
A.DOB,
A.Weight,
A.Height
FROM [testDB].[StagingTable] as A
WHERE A.UniqueID = '12345'
第二步。更新最终表:
UPDATE [Customers].[FinalTable]
SET ID = B.ID,
UniqueID = B.UniqueID,
ReportDate = B.ReportDate,
DOB = B.DOB,
Weight = B.Weight,
Height = B.Height
FROM #tempTable AS B
WHERE [Customers].[FinalTable].[ReportDate] = B.ReportDate
AND [Customers].[FinalTable].[DOB] = B.DOB
此查询需要30分钟以上!有没有办法加快这个更新过程?你知道我做错了什么吗?
我只想补充一点finaltable有数百万行。。。
任何帮助都将不胜感激。谢谢!
1条答案
按热度按时间d7v8vwbk1#
如果只有30个匹配项,那么您需要一个索引
#temptable(ReportDate, DOB)
: