Вернуться   Форум программистов > Форум Базы данных > Форум SQL Server

SQL Server

Программирование MS SQL Server

Ответ
 
Старый 13.10.2006, 20:07   #1
Dion
Новичок
 
Регистрация: 28.03.2006
Сообщений: 21
Dion пока не определено
По умолчанию Как правильно и быстро выполнить огромный скрипт из файла?

Есть такая проблема... Для одного Web-проекта используется виртуальный сервер весьма ограниченной мощности. А для функционирования требуется ежедневно обновлять базу данных с помощью скачиваемых XML-файлов. (размер XML получается около 18 МБ, в скриптах - чуть больше)



Здесь есть 3 пути:

1. Как-то делать заливку данных из XML через механизм (BCP?) Batch

2. Конвертировать XML в SQL-скрипт и по-порциям выполнять с помощью .net-приложения

3. Конвертировать XML в SQL-скрипт и запустить какую-то консольную команду, которая запустила бы "правильный" механизм SQL-Server для импорта скриптов из файла.



Я сейчас использую 2-ой путь, он отлично работал в июле, но сейчас сервер, вероятно, перегружен и приложение элементарно виснет, будучи не в состоянии залить в базу все данные. Сразу оговорюсь, что тормоза из-за виртуалки, т.к. у меня дома всё летает и делается за 3 минуты.



Главный вопрос у меня такой: Как вообще можно правильно средствами MS-Windows, SQL-Server или .net выполнить такого рода работу?

Я где-то читал про какой-то com-компонент для импорта данных из XML в таблицу, но разобраться не смог. Возможно, простым решением было бы запускать через Windows Sheduled Tasks приложение-конвертор, а следом, запускать какую-то хитрую консольную команду для выполнения SQL-команд (в основном, insert) из определённого файла. Только я не знаю таких команд...



Что посоветуете?



З.Ы. Вообще я 3 месяца назад поднимал такую тему, но там условия были похуже: aspx-скрипт, каскадное удаление, то-сё. Сейчас просто формируются пустые копии таблиц, в них заливаются данные, а потом таблицы подменяются.
Dion вне форума  
Старый 13.10.2006, 23:11   #2
MFisher
Пользователь
 
Регистрация: 26.07.2006
Сообщений: 43
MFisher пока не определено
По умолчанию RE: Как правильно и быстро выполнить огромный скрипт из файла?

Пoпрoбуйте испoльзoвaть OPENXML:
http://msdn2.microsoft.com/en-us/library/ms186918.aspx http://msdn2.microsoft.com/en-us/library/ms186918.aspx
MFisher вне форума  
Старый 16.10.2006, 04:19   #3
Dion
Новичок
 
Регистрация: 28.03.2006
Сообщений: 21
Dion пока не определено
По умолчанию RE: Как правильно и быстро выполнить огромный скрипт из файла?

MFisher, спасибо за наводку, с этим вариантом не разобрался, зато набрёл на нормальную документацию по XML Bulk Load, с помощью которого проблема и была решена. Повозиться, конечно, пришлось капитально
Dion вне форума  
Ads
Ответ
Опции темы

Похожие темы
Тема Автор
Соединение таблиц SQL Server
Здравствуйте! У меня такой вопорс: Можно ли объединить две таблицы так, чтобы из второй таблицы выводились только те записи, которых нет в первой таблице. ... даже немного не так... что-то типа...
Vodizzz
SQL Server Проблема в названии поля
Здравствуйте! Такой вопрос: Есть строка SELECT @Turn=Sum(A10_Turn) FROM tbl WHERE <=getdate() and >=DateADD(dd,-10,getdate())
Vodizzz
SQL Server SQL 2005:Integration Services -Foreach Loop Container
Мне надо было перевести даные с одной ДБ на другую. Сделала в SSIS Packge Import and Export на перевод 5 таблиц. Сейчас понадобилось добавить еще несколько таблиц и не могу найти,как это...
mayyakom
SQL Server Ошибка:Failed to restart the current database
У меня есть процедура: set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO ALTER PROCEDURE . @nameFile nvarchar(100) AS BEGIN
mayyakom
Как не апдейтить некоторые поля в зависимости от условий? SQL Server
Имеется две таблицы. В каждой из них довольно много полей. Каждую ночь проводится Job, заключающаяся в том что запускается Stored Procedure, которая берет поля из первой таблицы и делает Update...
evgenybe
SQL Server Прошу помощи в написании запроса.
Нужно написать запрос, результатом которого будет выборка уникальных значений "Поле1" да так, что среди равных будут выбраны строки с наибольшим значением в "Поле2". Данные такого плана: ...
Eilede



Текущее время: 06:11. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.

Рейтинг@Mail.ru