Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.009 c
8-81383
Просто чел
2002-03-20 01:13
2002.07.25
Flash ролик в Delphi


1-81268
AL2002
2002-07-15 12:16
2002.07.25
Иконки нет


3-81142
Aleksandr
2002-07-03 16:49
2002.07.25
Как контролировать Sessions.Count?


1-81329
saxon
2002-07-11 21:09
2002.07.25
Word Print


1-81349
olookin
2002-07-13 13:18
2002.07.25
Запись Variant в файл




   Наверх