Ниже приведена логика, которую я использую в своей хранимой процедуре для обновления моих столбцов в огромной базе данных и я новичок в 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
SQL Server ** 2000 ** является sooooo waaaaaaay за пределами поддерживаемых (даже SQL Server ** 2005 ** больше не поддерживается официально ....) - вы должны *** действительно *** обновить до более новой версии ! –
да, я знаю, что я предложил это команде, а не в моих руках .. есть что-нибудь, что я могу сделать с приведенным выше кодом, чтобы настроить его лучше –