Скорость Pervasive ISAM (Btrieve) и Pervasive SQL

0 (0)
  • Развернуть Скорость Pervasive ISAM (Btrieve) и Pervasive SQL ( Olga_3005  01.09.2009 13:56 )
    5(1)
    Доброе время суток!

    Хотя мы и не работаем с R-Style, но т.к. на форуме активно идет обсуждение
    общих вопросов работы с Pervasive очень надеемся что сможем получить ответы
    на наши вопросы.

    Мы долгое время работаем с Pervasive 8 ISAM (Btrieve).
    Теперь для значительного увеличения производительности наших программ планируем перейти на SQL.

    В связи с этим выбираем из двух платформ:
    - Pervasive SQL v10
    - Microsoft SQL 2008 (или 2005)

    При тестировании на скорость обработки больших массивов данных столкнулись с проблемой.

    Имеем таблицу, которая содержит 11 полей, 6 индексов (в среднем по 3-8 сигментов в каждом), без внешних ключей.
    Количество строк - 500 тысяч

    В используемой нами среде разработки пишем простую прогу - просмотр этой таблицы на разных платформах:
    - Pervasive ISAM v10
    - Pervasive SQL v10
    - Microsoft SQL 2005

    Для тестирования скорости выполняем эту программу с разными индексами.
    По первому индексу на всех платформах скорость везде почти одинаковая, но по другим индексам скорость в
    Pervasive SQL v10 и Microsoft SQL 2005 значительно ниже чем в Pervasive ISAM v10.

    Это нормально или так не должно быть?
    Если нет, то посоветуйте, пожалуйста, как можно решить эту проблему.
    >> Ответить
    • Развернуть Это так и будет ( Шкурко Владимир  01.09.2009 14:12 )
      5(1)
      Если Ваша программа выполняет проход "в лоб" по 500 000 записей, то результат закономерен, поскольку SQL не самое удачное решение для перекачки данных. Если же вам нужно получить сумму какого-либо поля по некоторой выборке, то результат будет противоположным.
      >> Ответить
      • Развернуть Скорость Pervasive ISAM (Btrieve) и Pervasive SQL (продолжение) ( Olga_3005  01.09.2009 19:52 )
        5(1)
        Уважаемый Владимир, спасибо за Ваш ответ.
        Если не затруднит, ответьте пожалуйста еще на один вопрос:
        Как мне тогда быть, если в одном программном модуле нужно совместить и сложную выборку и тупой проход
        по записям (и в том и в другом случай используется одна и та же таблица).
        >> Ответить
        • Развернуть Зависит от задачи ( Шкурко Владимир  02.09.2009 09:19 )
          5(1)
          Можно и совместить - никто не запрещает. Если же "тупые проходы" составляют небольшую часть алгоритмов, можно ограничиться одной SQL-реализацией.
          Или посмотреть, как происходит в SQL-режиме работа с индексами. В Btrieve все ключи создаются сразу при выполнении каких-либо модификаций таблиц (вставка, модификация и пр.). По SQL ничего не могу сказать, но возможно, есть только первичный ключ, а остальные формируются динамически. Отсюда и разница в скорости при работе с ключами, отличными от первого.
          >> Ответить