Скорость 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 ничего не могу сказать, но возможно, есть только первичный ключ, а остальные формируются динамически. Отсюда и разница в скорости при работе с ключами, отличными от первого.
>> Ответить