SQL Server Openrowset для чтения огромных XML-файлов за один шаг
Это мой первый пост... и мне действительно нужна помощь по этому вопросу, так что любой, кто имеет некоторые знания по этому вопросу - пожалуйста, помогите!
Что мне нужно сделать, это прочитать файл XML в таблицы данных сервера SQL. Я снова и снова искал решения для этого и нашел несколько действительно. Проблема заключается в размере загружаемого XML-файла. Он весит 2 ГБ (и будет 10 ГБ). Мне удалось это сделать, но я увидел одно конкретное решение, которое мне кажется удачным, но я не могу его найти.
Хорошо, давайте перейдем к делу. В настоящее время я делаю это так:
- Я прочитал весь XML, используя openrowset в переменную. (это занимает всю оперативную память...)
- Затем я использую объект.node (), чтобы извлечь данные и заполнить ими таблицы.
Это двухэтапный процесс. Мне было интересно, смогу ли я сделать это только за один шаг. Я видел, что есть такие вещи, как форматирование файлов, и есть множество примеров того, как использовать это для извлечения данных из плоских файлов или даже для превосходных документов в манере на основе записей (вместо того, чтобы засосать все это в переменную), но я НЕ МОЖЕТ найти какой-либо пример, который показал бы, как читать этот огромный XML-код в таблицу, анализирующую данные на лету (на основе файла формата). Это вообще возможно? Я был бы очень признателен за помощь или советы, где найти хороший пример.
Прошу прощения за мой английский - прошло много времени с тех пор, как мне пришлось так много писать на этом языке:-) Заранее спасибо!
1 ответ
Для очень больших файлов вы можете использовать SSIS: загрузка данных XML в SQL Server 2008
Это дает вам гибкость преобразования XML-данных, а также уменьшает объем используемой памяти для очень больших файлов. Конечно, это может быть медленнее по сравнению с использованием OPENROWSET в режиме BULK.