2009-11-18 5 views
0

Возможно ли создать некластеризованные индексы в SQL Server 2005, которые не обновляются при изменении данных (insert/delete/udpate), чтобы я мог обеспечить стабильный набор данных для отчета?Статические индексы SQL Server

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

ответ

2

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

Например, вы можете загрузить снимок в новую таблицу отчетности, как:

truncate table BigTableSnapshot 

select * 
from BigTable 
into BigTableSnapshot 

Кроме того, SQL Server Enterprise Edition позволяет делать snapshots всей базы данных. Это может быть очень полезно для отчетности, хотя это имеет влияние на производительность.

+0

Это не совсем решение, что я искал, но я думаю, что его самое лучшее, что вы можете получить в SQL Server. Благодарю. – Penfold

1

Если у вас есть корпоративная версия SQL2005, вы можете сделать снимок всей базы данных, предоставляя вам доступную только для чтения/статическую точку во временной копии базы данных для отчета.

http://msdn.microsoft.com/en-us/library/ms175158.aspx

+0

Простите, Андомар, я не читал, что вы правильно отвечаете и видите, что вы уже указали это. – SuperCoolMoss

+0

@SuperCoolMoss: Вполне можно опубликовать несколько ответов! Избиратели могут решить, какой из них лучше объяснить – Andomar