2016-05-12 1 views
0

Ниже приведена логика, которую я использую в своей хранимой процедуре для обновления моих столбцов в огромной базе данных и я новичок в SQL Server и немного нуждаюсь в лучшей практике, чтобы сократить время обработки.SQL Server 2000: Я использую процедуру для обновления значения столбца в огромной базе данных с миллионом строк, но он все еще занимает огромное время.

Я пытаюсь создать индексы из различных источников знаний для ее достижения, но все еще не мог сделать это правильно, так нужен совет экспертизы о том, как решить эту проблему производительности

IF OBJECT_ID('dbo.tmp_my_table') IS NOT NULL 
    DROP TABLE dbo.tmp_my_table; 

CREATE INDEX [tmp_ind] ON [dbo].[tmp_fact_table](col1, col2, col3_flag, col4) ON [PRIMARY] 

SELECT 
    DISTINCT 
    COL1, 
    COL2, 
    COL3_FLAG 
INTO 
    dbo.tmp_my_table 
FROM 
dbo.tmp_fact_table 
WHERE 
    COL4 = 1 

CREATE CLUSTERED INDEX [tmp_WO_COL2_tony_ind] ON dbo.tmp_my_table (COL1, COL2, COL3_FLAG) ON [PRIMARY] 
CREATE INDEX [tmp_FACT_QS_DETAIL_WO_COL2_MIC_ind] ON [dbo].[tmp_fact_table](COL1, COL2, colmc3) ON [PRIMARY] 

UPDATE 
    FCT 
SET 
    FCT.COL3_FLAG = TMP.COL3_FLAG 
FROM 
dbo.tmp_fact_table   FCT 
INNER JOIN 
    dbo.tmp_my_table       TMP 
    ON FCT.COL1 = TMP.COL1 
    AND FCT.COL2   = TMP.COL2 
WHERE 
    FCT.colmc3 = 1 
+1

SQL Server ** 2000 ** является sooooo waaaaaaay за пределами поддерживаемых (даже SQL Server ** 2005 ** больше не поддерживается официально ....) - вы должны *** действительно *** обновить до более новой версии ! –

+0

да, я знаю, что я предложил это команде, а не в моих руках .. есть что-нибудь, что я могу сделать с приведенным выше кодом, чтобы настроить его лучше –

ответ

1

Первое предложение, вы можете попробовать добавить SQL команда:

UPDATE STATISTICS dbo.tmp_my_table 

после операторов CREATE INDEX в вашем коде. Это заставит SQL Server создавать последние статистические данные для этих индексов.

Вам действительно нужно зафиксировать детали плана выполнения запроса, чтобы показать, как SQL Server выполняет инструкцию UPDATE, и если индексы используются эффективно.

Смежные вопросы