XMLDocument1 с TFileStream
От: szb Ниоткуда  
Дата: 30.03.05 08:56
Оценка:
МОЖНО ЛИ использовать XML-файлы для хранения очень больших данных, разбитых по записям,как в БД-таблицах? Какие проблемы могут возникнуть?
И второй вопрос:
можно ли связать XMLDocument1 с TFileStream?
Re: XMLDocument1 с TFileStream
От: ssm Россия  
Дата: 30.03.05 09:14
Оценка:
Здравствуйте, szb, Вы писали:

szb>МОЖНО ЛИ использовать XML-файлы для хранения очень больших данных, разбитых по записям,как в БД-таблицах? Какие проблемы могут возникнуть?


скорость, отсутствие возможности использования SQL
Re: XMLDocument1 с TFileStream
От: Elich  
Дата: 30.03.05 09:21
Оценка:
Здравствуйте, szb, Вы писали:

szb>МОЖНО ЛИ использовать XML-файлы для хранения очень больших данных, разбитых по записям,как в БД-таблицах? Какие проблемы могут возникнуть?

szb>И второй вопрос:
szb>можно ли связать XMLDocument1 с TFileStream?

XML, в отличие от БД, формат избыточный, и текстовый. Из этого:
— более быстрое исчерпание дискового пространства.
— очень низкая производительность при обработке.
Re: XMLDocument1 с TFileStream
От: Didi  
Дата: 31.03.05 07:54
Оценка: 1 (1)
Здравствуйте, szb, Вы писали:

szb>МОЖНО ЛИ использовать XML-файлы для хранения очень больших данных, разбитых по записям,как в БД-таблицах? Какие проблемы могут возникнуть?


Проблемы могут быть с быстродействием.
Мне приходилось вытаскивать информацию из HTML файла размеров в 40Мб.
От приводился к XML виду и загружался в MSXML парсер.
Непосредственно загрузка в парсер занимает менее минуты, при этом парсер отжирает
оперативки раза в 3 больше чем сам файл.
XPath запросы на таком объеме выполняются достаточно шустро (порядка секунды)


szb>И второй вопрос:

szb>можно ли связать XMLDocument1 с TFileStream?

Ты бы хоть сказал, на чем ты их собираешься связывать.

Если имелось ввиду MSXML то его функции Load передается на вход
не только строка с именем файла но и указатель на интерфейс,
после чего они начинают договариваться о поддержки интерфейсов
следуют запросы на IStream, ISequentialStream.

Если C# то одна из перегруженных функций
public virtual void Load(Stream inStream);

C уважением Didi
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.