Структура таблицы SQL Server, StartDate и EndDate - PullRequest
0 голосов
/ 21 сентября 2010

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

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

Спасибо,

1 Ответ

1 голос
/ 21 сентября 2010

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

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

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

Если это просто вставка, то самый быстрый способ - это массовая вставка.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...