2010-09-21 2 views
0

У меня есть таблица тарифов на международные набора кодов
с StartDate и EndDateтаблицы SQL сервера Структура, StartDate и EndDate

Я использую ASP.net приложения импортировать первенствует предложения в эту таблицу, каждое предложение содержит около 10000, поэтому это большая таблица (около 3 миллионов строк). Каков более быстрый сценарий в SQL Server 2008 для создания хранимой процедуры или триггера для изменения предыдущего endDate для одного и того же тарифа. То же префикс того же адресата и новой скорости при вставке новую строку, и как отменить экономичное предложение из 10000 строк и вернуть таблицу и обновить записи до предыдущего состояния

ответ

1

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

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

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

Если это всего лишь вставка, то самым быстрым способом является объемная вставка.

Поскольку вы хотите сохранить предыдущее состояние, моим советом было бы создать таблицу архива/аудита (в основном дубликат, возможно, дополнительные поля, такие как WhenInserted и т. Д.), Вставить перемещение (т.е. вставить в новую таблицу и затем удалить из оригинала) существующие строки в архив, а затем вы можете сделать объемную вставку для новых строк.

Но вы используете слово «change», поэтому трудно понять, чего вы действительно хотите. Надеюсь, это поможет.

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