MS sql server 2000 (MSDE). Нужно ускорить update таблицы
CREATE TABLE dbo.T_PRO_PLAST
(
ID_PROPLAST INT IDENTITY(1,1) NOT NULL,
POR_PP REAL,
GLIN_PP REAL,
еще 30 столбцов - все REAL,
есть и другого типа, но они не обновляются
CONSTRAINT PK__T_PRO_PLAST__7E6372D6 PRIMARY KEY CLUSTERED ( ID_PROPLAST )
)
UPDATE делаю так
update T_PRO_PLAST set POR_PP = 33.33, GLIN_PP = 44.44
where ID_PROPLAST = 1100
В таблице 26 тысяч строк ( будет 50-200 тысяч ).
Update делаю 3 тысячам ( будет 30-50 тысяч)
Время 0.6 - 0.8 секунды. На Core2duo 3.6Гц 4гб оперативки.
Select этих же строк быстрее ~ 50 раз.
Вопросы:
1. Это и так очень быстро и ускорить в разы не реально?
2. В чем конкретно тормоз
2. Если в запрос добавить
from T_PRO_PLAST with(index(0))
время выполнения -12 секунд. Означает ли это, что индексирование работает на 100% и здесь ничего не выжать?
3. Если в запрос добавить
from T_PRO_PLAST with(index(PK__T_PRO_PLAST__7E6372D6))
время выполнения - 2.8 секунды. Почему? Разве таким образом не указывается тот же самый индекс, что используется по умолчанию?
5. Есть ли способ у этого индекса поиграться с fill factor не создавая таблицу заново?
6. Замена UPDATE на DELETE и INSERT может помочь?