2013-03-26 3 views
2

У меня возникла проблема с медленным созданием новой базы данных с использованием 17000 строк длинного сценария кода, отправленного из ASP.NET в виде пакета в одной команде. Проблема в том, что выполнение этого скрипта занимает 20 секунд, иногда больше во время пиков. Если я запустил этот скрипт в SQL Server Management Studio, он займет 2 секунды.Создание нетривиальной базы данных на SQL Server по запросу

Какова наилучшая практика создания баз данных по запросу, поместить скрипт в хранимую процедуру, клонирование базы данных, предварительное создание и переименование БД? Мы должны быть уверены, что он совместим с одновременной средой под нагрузкой.

спасибо.

+1

Все ли базы данных в этом случае клонируют друг друга? Если это так, лучшим способом было бы добавить все объекты/данные в базу данных модели. Тогда все, что вам нужно сделать, это выпустить команду CREATE DATABASE. Новая создаваемая база данных будет копией базы данных модели. Вот для чего предназначена база данных моделей, это шаблон (модель) для всех новых баз данных, созданных на этом экземпляре. –

+0

Есть ли что-нибудь динамическое о коде создания БД, который * требует * вы выполняете его в команде? Или вы можете выполнить SQLCmd с помощью файла сценария и других соответствующих переключателей для создания БД? – maelstrom

+1

Профилировали ли вы свое приложение ASP.NET, чтобы узнать, где расходуются дополнительные 18 лет? – Pondlife

ответ

0

Отправка 17000 строк по кабелю на сервер SQL кажется ужасным количеством накладных расходов и медленными, так как все выходят. Таким образом, использование SQL-клиента для ASP.NET делает что-то вроде этого.

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

+0

Проблема в том, что вы должны хранить этот PROC внутри общей базы данных, а PROC не может содержать команду USE, поэтому ho мог ли я создать БД и запустить скрипт на вновь созданной БД? –

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