Как выполнить большие файлы SQL на SQL Server? - PullRequest
3 голосов
/ 06 мая 2010

У меня около 50 файлов T-SQL, некоторые из них имеют размер 30 МБ, а некоторые - 700 МБ. Я подумал о том, чтобы выполнить их вручную, но если размер файла превышает 10 МБ, он вызывает исключение нехватки памяти в SQL Server Management Studio.

Есть идеи?

Ответы [ 3 ]

12 голосов
/ 06 мая 2010

вы можете попробовать инструмент командной строки sqlcmd, который может иметь разные ограничения памяти. http://msdn.microsoft.com/en-us/library/ms162773.aspx

Пример использования:

sqlcmd -U userName -P myPassword -S MYPCNAME\SQLEXPRESS -i myCommands.tsql
5 голосов
/ 06 мая 2010

Если у вас есть столько данных - не было бы намного проще и разумнее иметь эти данные, например, файл CSV, а затем массовый импорт их в SQL Server ??

Проверьте команду BULK INSERT - она ​​позволяет быстро и эффективно загружать большие объемы данных в SQL Server - намного лучше, чем такой огромный файл SQL!

Команда выглядит примерно так:

BULK INSERT dbo.YourTableName
   FROM 'yourfilename.csv'
   WITH ( FIELDTERMINATOR =';',
          ROWTERMINATOR =' |\n' )

или любой другой формат, который вам, возможно, придется импортировать.

3 голосов
/ 06 мая 2010

Может быть, это слишком очевидно, но ... вы рассматривали возможность написания программы для циклического обхода файлов и вызова SqlCommand.ExecuteNonQuery() для каждой строки? Это почти тривиально.

Менее очевидные преимущества:

  • Вы можете следить за ходом подачи (что займет некоторое время)
  • Вы можете ограничить его (если вы не хотите перегружать сервер)
  • Вы можете добавить небольшую обработку ошибок, если во входных файлах есть проблемы
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...