2013-03-26 5 views
2

한 명령에서 ASP.NET에서 배치 된 17000 줄의 코드 긴 스크립트를 사용하여 느린 새 데이터베이스 생성에 문제가 있습니다. 문제는이 스크립트를 실행하는 것이 피크 시간대에 때로는 20 초가 더 걸리는 것입니다. SQL Server Management Studio에서이 스크립트를 실행하면 2 초가 걸립니다.요청시 SQL Server에서 중요하지 않은 데이터베이스 만들기

요청시 데이터베이스를 생성하고 스크립트를 저장 프로 시저에 저장하고 데이터베이스 복제, 사전 생성 및 DB 이름 바꾸기를 수행하는 것이 가장 좋은 방법은 무엇입니까? 우리는 그것이로드 하에서 동시 환경과 호환되는지 확인해야합니다.

감사합니다.

+1

이 인스턴스에있는 모든 데이터베이스가 서로 복제됩니까? 그렇다면 가장 좋은 방법은 모든 개체/데이터를 모델 데이터베이스에 추가하는 것입니다. 그런 다음 CREATE DATABASE 명령을 실행하면됩니다. 생성 된 새 데이터베이스는 모델 데이터베이스의 복사본이됩니다. 이것이 모델 데이터베이스의 목적입니다. 인스턴스에 생성 된 모든 새 데이터베이스의 템플릿 (모델)입니다. –

+0

명령에서 * 실행해야하는 DB 작성 코드에 대해 동적 인 것이 있습니까? 또는 DB를 만들기 위해 스크립트 파일과 다른 적절한 스위치를 사용하여 SQLCmd를 실행할 수 있습니까? – maelstrom

+1

ASP.NET 애플리케이션을 프로파일 링하여 추가 18s가 소비 된 곳을 확인 했습니까? – Pondlife

답변

0

전선을 통해 SQL 서버에 17000 회선을 보내는 것은 오버 헤드가 너무 심해서 모두 빠져 나가는 것처럼 느껴집니다. 그래서 ASP.NET에서 SQL 클라이언트를 사용하여 이와 같은 작업을 수행합니다.

예, 저장 프로 시저를 사용하는 것이 좋습니다. DB 복제 및 이름 변경 작업에 대해서는 확실하지 않습니다. 나는 그것을 정의하기 위해 저장된 proc에 매개 변수를 사용하여 그로부터 벗어날 수있을 것입니다.

+0

문제는 PROC를 공용 DB에 저장해야하고 PROC에 USE 명령을 포함 할 수 없다는 것입니다. 따라서 DB를 생성하고 새로 생성 된 DB에서 스크립트를 실행할 수 있습니까? –

관련 문제