|
SQLite3. Вопрос про оптимизацию SQL-запроса.
|
|||
---|---|---|---|
#18+
Приветствую всех участников форума! :). Есть вопрос про оптимизацию запроса к БД. БД -- "лес" данных. Таблицы -- структура каждого дерева леса данных. Пример такой таблицы: Код: plaintext 1.
Навигация по дереву осуществляется таким образом: Код: plaintext 1. 2. 3. 4.
Вопрос состоит в том, что если первые 3-4 подобных запроса отрабатывают с достаточной скоростью, то начиная уже с 5 скорость неприемлема. "Глубина" запросов не превышает 10 полей. 1. Использовал отдельные индексы на каждый field, но это не дало искомого результата. 2. Использовал комбинированные индексы на каждую комбинацию field'ов, но мне кажется, что можно поступить как-то еще более оптимальнее, тем более, что и такая оптимизация оказалась недостаточной при частом обращении к БД. Что Вы можете посоветовать в моей ситуации? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 12:46 |
|
SQLite3. Вопрос про оптимизацию SQL-запроса.
|
|||
---|---|---|---|
#18+
Не смог найти кнопки "Редактировать"... :) Забыл добавить, что переход до каждого field'а занимает пробег всех field'ов до него, что, разумеется, малоэффективно, но ничего с этим поделать не могу. Данное ПО работает с некоторыми пропиетарными программами, которые почему-то делают именно так и не иначе. ( ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 12:51 |
|
SQLite3. Вопрос про оптимизацию SQL-запроса.
|
|||
---|---|---|---|
#18+
Serge_RUS2. Использовал комбинированные индексы на каждую комбинацию field'ов Field1 это Field1 и сегодня и завтра и всегда ? Или просто обозначена схема поиска в одной сессии, а на самом деле в одной сессии Field1 это Name, в другой это Salary ? Ну и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 17:32 |
|
SQLite3. Вопрос про оптимизацию SQL-запроса.
|
|||
---|---|---|---|
#18+
Dmitry Arefiev, Скажу сразу, что Ваши вопросы меня поставил в тупик на пару секунд, потому могу ответить не совсем корректно. >>Field1 это Field1 и сегодня и завтра и всегда ? Поля столбца field1 и ему подобным довольно редко обновляются. В рамках одного SomeTree столбцы обозначают одно и тоже независимо от времени. >>Или просто обозначена схема поиска в одной сессии, а на самом деле в одной сессии Field1 это Name, в другой это Salary ? Пользователь может сам задавать путь построения данных, потому вполне может быть, что в его сессии будет сначала field4 потом field3, field2, field8, а завершаться будет все на field1. Замечу еще, что пользователь может выбрать самостоятельно какой путь ему предпочтительнее, более того, он может использовать все 10 полей (10-ое поле конечное), а может сделать только 4 поля (4-ое поле конечное в структуре получившегося дерева). ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 21:28 |
|
SQLite3. Вопрос про оптимизацию SQL-запроса.
|
|||
---|---|---|---|
#18+
>>Замечу еще, что пользователь может выбрать самостоятельно какой путь ему предпочтительнее, Масло масляное. Извините за возможный ввод в заблуждения. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2009, 21:31 |
|
SQLite3. Вопрос про оптимизацию SQL-запроса.
|
|||
---|---|---|---|
#18+
Serge_RUS Т.е. в общем случае поля могут встречаться в WHERE в произвольных комбинациях ? Если так, то индексы не помогут. Надо думать над изменением модели данных ... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2009, 06:44 |
|
|
start [/forum/topic.php?fid=54&msg=35767725&tid=2009468]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
71ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 324ms |
total: | 486ms |
0 / 0 |