Форум: "Базы";
Текущий архив: 2002.07.25;
Скачать: [xml.tar.bz2];
ВнизВозможно ли? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c