|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Alex Astafiev 2:5000/228.16 26 Sep 2001 22:27:32 To : Alexander Zhigarev Subject : Выборка --------------------------------------------------------------------------------
AZ> Есть вопрос.
AZ> В течение дня происходят некие события, у каждого из которых есть
AZ> время начала, время завершения и уникальный номер. События могут
AZ> происходить в любое время и до 23-х одновременно. Есть таблица, где
AZ> все это фиксируется. Как узнать сколько событий одновременно
AZ> происходило в течение дня по максимуму и сколько их было в
AZ> определенный момент времени? Пока приходит в голову куча вложенных
AZ> циклов, но на 2 тысячи записей ушло несколько минут.
Задачу, которую тебе нужно решить уже давно решают SQL-серверы.
(как можно более быстрая выборка по некоему запросу из таблицы)
Следовательно, тебе тоже можно решать ее аналогично.
Такое время получилось потому что ты линейно перебираешь таблицу.
Hужно делать индексы(индексирование).
Как именно - рассказывать не буду, эта тема широко освещена в литературе
(интернет) по базам данных или SQL Server-ам, например, C.J.Date (К.Дейт)
"Введение в базы данных"
либо, это алгоритмическая задача поиска с индексированием (хэшированием).
Могу порекомендовать русский ресурс ib.demo.ru, и могу порекомендовать
собственно, самого Дмитрия Кузменко.
Также спросить в RU.DBMS RU.DBMS.SQL RU.INTERBASE(?) RU.DBMS.ORACLE(?)
или www.deja.com ....
алгоритмы следует использовать аналогичные.
---------
В худшем случае 2000 записей по 23 полям потребуют на совр. элем базе 0.1-0.05
сек....
--- Alex Raider / Flash inc.
* Origin: Alex Raider/ Flash inc. 1992-2001 (2:5000/228.16)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/174643bb266d4.html, оценка из 5, голосов 10
|