Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.25;
Скачать: CL | DM;

Вниз

Возможно ли?   Найти похожие ветки 

 
Captain   (2002-07-02 00:04) [0]

Есть набор данных. Мне нужно занести в массив или список все значения одного из полей этого набора. Сложность в том, что набор данных огромен по своим размерам (десятки тысяч записей). Поэтому навигация по набору данных и последовательное присваивание элементам массива значений поля займет уйму времени.
Можно ли как-нибудь одним махом заполнить массив (список) значениями поля?


 
kaif ©   (2002-07-02 01:09) [1]

Само по себе получение такого набора (извлечение записей с сервера с помощью Fetch) занимает больше времени, чем запись оных в массив. Поэтому, я боюсь, хороших времен получить все равно не удастся. А зачем нужно считывать десятки тысяч записей на клиент, если не секрет?


 
Леша   (2002-07-02 06:45) [2]

Набор данных сам по себе тоже массив.


 
Captain   (2002-07-02 08:31) [3]

Дело в том, что мой набор данных представляет собой множество ID вершин графа. Чтобы привести в действие какой-нибудь алгоритм на графе, например Дейкстры или Флойда, нужно сформировать тип данных "Граф" - массив вершин или, что представляется мне более удобным, список вершин. Но перед этим мне надо все вершины считать из базы, и хотелось бы минимизировать по времени этот процесс.


 
dimis   (2002-07-02 08:39) [4]

алгоритм вычисления кратчайшего расстояния достаточно трудоемкий процесс. Сложность алгоритма Дейкстры o(n^2). У флойда еще больше. Мой совет не делать динамический рассчет,а просчитать пути зарание (можно ключевые точки),занести все это в таблицу и проиндексировать. Объем базы возрастет, но время обсчета уменьшится на несколько порядков.
Конечно этот вариант проходит если топология графа достаточно стабильна во времении и изменяется редко. Я сам таким занимался.
У меня около 20000 тысяч вершин. Обсчет всех расстояний занял около недели.зато потом выборка занимает доли секунды.


 
Desdechado ©   (2002-07-02 17:07) [5]

попробуй сделать это не на клиенте, а в хранимой процедуре. конечно, мороки больше, но ничего лишнего не фетчится.
если нужны промежуточные структуры для хранения данных, обсчитанных ХП, используй специальную таблицу, очищая ее при старте и завершении расчетов.


 
kaif ©   (2002-07-02 23:53) [6]

Может для такой цели можно как-то тип ARRAY задействовать?
Это только в виде идеи...


 
Alexandr ©   (2002-07-03 08:33) [7]

тип Array как всегда не подойдет.

С ним ни через SP никак не поработать... да и толку от него нету.

1) Array это такой специальный BLOB поэтому уж лучше BLOB использовать: с ним хотя бы све понятно и доступно
2) Этот Array был сделан в Interbase по заказу одной крупной конторы и нужен практически только им

Так что забудьте вы про Array



Страницы: 1 вся ветка

Текущий архив: 2002.07.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.01 c
7-81496
Fredericco
2002-05-07 13:28
2002.07.25
Интересный вопрос по организации ма-а-аленькой телефонной станции


1-81362
SemFLY
2002-07-11 22:35
2002.07.25
Как открыть CD-ROM, но тока тот который Slave, а не Master ?


3-81125
DKalinin
2002-07-02 15:31
2002.07.25
что это? - Rowset position cannot be restarted


1-81219
Vlad Schekunov
2002-07-14 06:05
2002.07.25
Разность между датами


1-81267
programmerts
2002-07-10 20:12
2002.07.25
Как написать программу без формы.