Автор Тема: Как произвести быстрый поиск в файле DEP с индексным LST? Структура!?  (Прочитано 10104 раз)

Оффлайн Dion

  • Старенький
  • **
  • Сообщений: 35
  • Карма: +1/-0
    Через компонеты доступа к данных и выборе их в последующем в Delphi в ADOConnection получаю таблицу из файла DEP, но она грузиться мягко говоря - медленно (имею ввиду SHRT файлы с данными за неделю записи, как пример), причем время затраченное на загрузку прямопропорционально объему этой базы!
    С каждым файлом идет LST файл, я так понимаю это файл индексации! Но вот как прикрутить его в файлу DEP и вообще в целом к проекту - ума не приложу!
    Родные программы то вон как шустро оперируют сотнями мегабайт, а то и гигабайтами внутри базы DEP.
    Пользую Delphi 7, компоненты стандартные!
    Буду признателен за любой ответ и уж совсем счастлив хоть малому исходнику или толковому объяснению как все связать!


    Оффлайн boikovsoft

    • Старожил
    • ****
    • Сообщений: 288
    • Карма: +7/-0
    • Инженер-программист
      • http://oilsoft-service.com
    Через компонеты доступа к данных и выборе их в последующем в Delphi в ADOConnection получаю таблицу из файла DEP, но она грузиться мягко говоря - медленно (имею ввиду SHRT файлы с данными за неделю записи, как пример), причем время затраченное на загрузку прямопропорционально объему этой базы!
    С каждым файлом идет LST файл, я так понимаю это файл индексации! Но вот как прикрутить его в файлу DEP и вообще в целом к проекту - ума не приложу!
    Родные программы то вон как шустро оперируют сотнями мегабайт, а то и гигабайтами внутри базы DEP.
    Пользую Delphi 7, компоненты стандартные!
    Буду признателен за любой ответ и уж совсем счастлив хоть малому исходнику или толковому объяснению как все связать!
    Надо посмотреть на процедуру поиска.
    Я лично делал процедуру с половинным делением. т.е. берешь половину таблицы и смотришь в какой половине находиться искомое значение. Затем берешь эту половинку и еще раз делишь. опять смотришь в какой половинке искомое значение.
    Естественно все значения должны быть упорядочены по возрастанию. и таблица находиться на локальной машине. Если бд находиться на удаленной машине, то лучше воспользоваться SQL.
    Советую почитать:
    http://www.delphikingdom.com/asp/viewitem.asp?catalogid=65
    а также:
    http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1

    Удачи!
    http://oilsoft-service.com

    Оффлайн Dion

    • Старенький
    • **
    • Сообщений: 35
    • Карма: +1/-0
      Так я и делал через SQL, но это не выход оказался, особенно когда база разрослась до строк больше 500000! О быстром поиске тут уже речь не шла!, тем более с условием, так как именно эти базы не поддерживают ни TOP 1 ни ORDER BY, ни вообще какую-либо сортировку!
      Понял что надо задействовать именно индексный файл, спасибо REA за предоставленную информацию, буду разбираться!
      А если поробовать с половинным делением и т.д. время мне кажеться будет затрачено прямопропорционально колличеству делений!

      Оффлайн boikovsoft

      • Старожил
      • ****
      • Сообщений: 288
      • Карма: +7/-0
      • Инженер-программист
        • http://oilsoft-service.com
      Так я и делал через SQL, но это не выход оказался, особенно когда база разрослась до строк больше 500000! О быстром поиске тут уже речь не шла!, тем более с условием, так как именно эти базы не поддерживают ни TOP 1 ни ORDER BY, ни вообще какую-либо сортировку!
      Понял что надо задействовать именно индексный файл, спасибо REA за предоставленную информацию, буду разбираться!
      А если поробовать с половинным делением и т.д. время мне кажеться будет затрачено прямопропорционально колличеству делений!

      Я конечно с DEP не работал. Но вообще конечно проявляю интерес к этому формату.
      Интересно также что тебе REA насоветовал.
      http://oilsoft-service.com

      Оффлайн boikovsoft

      • Старожил
      • ****
      • Сообщений: 288
      • Карма: +7/-0
      • Инженер-программист
        • http://oilsoft-service.com
      Вообще я и с большим количеством записей работал именно методом половинного деления.
      http://oilsoft-service.com

      Оффлайн REA

      • Розов Евгений Анатольевич
      • Глобальный модератор
      • *****
      • Сообщений: 1266
      • Карма: +74/-62
        • GeoSensor
      Формат мутный, поэтому проще все в память загрузить и уже там с ним работать.

      Оффлайн boikovsoft

      • Старожил
      • ****
      • Сообщений: 288
      • Карма: +7/-0
      • Инженер-программист
        • http://oilsoft-service.com
      Почему все стараются что-то свое придумать? Когда есть уже давно нормальные СУБД. Все там давно реализовано.
      У меня создается впечатление что такие форматы появляются от недостаточного опыта и недостатка общих (начальных) знаний.
      А потом, по мере получения опыта, стараются свою муть облагородить.
      http://oilsoft-service.com

      Оффлайн REA

      • Розов Евгений Анатольевич
      • Глобальный модератор
      • *****
      • Сообщений: 1266
      • Карма: +74/-62
        • GeoSensor
      Во-первых это все делалось давно, во-вторых "нормальных" (т.е. подходящих для данных задач) СУБД до сих пор нет, в-третьих формат реляционной СУБД не всегда подходит к хранению данных с заранее неизвестной структурой. Необходимость администрирования СУБД, ее стоимость, возможность потери всех данных сразу тоже вносят вклад в принятие решение об использовании файловой системы. У меня на этот счет до сих пор нет однозначного мнения, хотя я тоже склоняюсь в сторону "нормальных" СУБД.

      Оффлайн boikovsoft

      • Старожил
      • ****
      • Сообщений: 288
      • Карма: +7/-0
      • Инженер-программист
        • http://oilsoft-service.com
      Вопрос к REA.
      Если не сложно можешь скинуть мне описание БД имс. Хочу сделать конвертор из Геотека в имс.
      http://oilsoft-service.com

      Оффлайн Dion

      • Старенький
      • **
      • Сообщений: 35
      • Карма: +1/-0
        Скинул тебе на почту и описание и готовый модуль для делфей!

        Оффлайн Dion

        • Старенький
        • **
        • Сообщений: 35
        • Карма: +1/-0
          Скинул на твой старый е-мэйл на mail-е.

          Оффлайн boikovsoft

          • Старожил
          • ****
          • Сообщений: 288
          • Карма: +7/-0
          • Инженер-программист
            • http://oilsoft-service.com
          Скинул на твой старый е-мэйл на mail-е.


          Спасибо РЕА И ДИОН
          http://oilsoft-service.com

          Оффлайн bigben

          • Старенький
          • **
          • Сообщений: 16
          • Карма: +0/-0
            • BIGBEN HOME STUDIO
          Задумал написать конвертор из DEP в Las формат, немогу никак этот гребаный Store.dep распотрошить...
          Crony просто уже достал всех! :'(
          Распиздяй с 14 летним стажем из отдела ОТСП

          Оффлайн Dion

          • Старенький
          • **
          • Сообщений: 35
          • Карма: +1/-0
            Воспользуйся TEditor-ом. Входит в комплект IMS Graphpad. Если не устроит пиши.

             



            Покер онлайн