|
|
|
Подскажите правильно ли я мыслю
|
|||
|---|---|---|---|
|
#18+
vazhneckiуточняю для вторых танкистов :) select * from .... where id in(N1,N2...N500) где все N случайны В таблице записей не 10 штук, а 10 миллионов, так, что даже половина не умещяется в кеше. Так подет? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2009, 18:27 |
|
||
|
Подскажите правильно ли я мыслю
|
|||
|---|---|---|---|
|
#18+
какой размер одной записи в act_oper_activ_log ? вот так с запасом: SELECT count(*), min(lg.id), max(lg.id) FROM act_oper_activ_log lg WHERE lg.id in (SELECT level*10000 from dual connect by level < 700); предварительно сбросив дисковый кеш и сделав этот запрос только 1 раз без "предварительных тестов" которые заполнят кеш :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2009, 18:49 |
|
||
|
Подскажите правильно ли я мыслю
|
|||
|---|---|---|---|
|
#18+
хотя даже так будет нереально. потому что записи будут читаться относительно последовательно с диска а значит с меньшей задержкой, но для теста пойдёт :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2009, 18:54 |
|
||
|
Подскажите правильно ли я мыслю
|
|||
|---|---|---|---|
|
#18+
vazhnecki, ну вот заставил таки в таблице 29 с небольшим млн записей запрос select * from table where code in (здесь 520 значений) ------ Performance info ------ Prepare time = 125ms Execute time = 141ms ----------------------------- справедлитвости ради должен сказать что 1. значения не совсем случайные 2. они "охватывают" только часть диапазона возможных значений поля code однако это не мешает мне по прежнему утверждать, что проблем у мну с этим нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2009, 19:26 |
|
||
|
Подскажите правильно ли я мыслю
|
|||
|---|---|---|---|
|
#18+
vazhneckiпотому что записи будут читаться относительно последовательно с диска Какие глубокие познания СУБД и особенностей хранения на диске вылазят. Ужоснах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2009, 20:12 |
|
||
|
Подскажите правильно ли я мыслю
|
|||
|---|---|---|---|
|
#18+
Видимо у меня медленный HDD, но меньше секунды не получалось, так или иначе: Prepare time = 125ms Execute time = 141ms =0.266 секунды а это в 3 раза медленнее чем мне надо, максимум 0.1 секунда должна быть, для 10 запросов в секунду. WildSeryvazhneckiпотому что записи будут читаться относительно последовательно с диска Какие глубокие познания СУБД и особенностей хранения на диске вылазят. Ужоснах. для вас я вижу секрет что данные отсортированы по ID, вот это действительно детский сад. правда это моё предположение неверно потому что выборка из случайного списка ID всё равно сортируется по ID движком субд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2009, 21:13 |
|
||
|
Подскажите правильно ли я мыслю
|
|||
|---|---|---|---|
|
#18+
[quot vazhnecki]Видимо у меня медленный HDD, но меньше секунды не получалось, так или иначе: Prepare time = 125ms Execute time = 141ms =0.266 секунды а это в 3 раза медленнее чем мне надо, максимум 0.1 секунда должна быть, для 10 запросов в секунду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2009, 21:14 |
|
||
|
Подскажите правильно ли я мыслю
|
|||
|---|---|---|---|
|
#18+
тьфу. чёт я проглючил, конечно не последовательно. но это не меняет сути, данные разбросаны по разным сегментам диска и скорость получения инфы ограничена скоростью доступа к дорожке диска ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2009, 21:16 |
|
||
|
Подскажите правильно ли я мыслю
|
|||
|---|---|---|---|
|
#18+
vazhnecki[quot vazhnecki]Видимо у меня медленный HDD, но меньше секунды не получалось, так или иначе: Prepare time = 125ms Execute time = 141ms =0.266 секунды а это в 3 раза медленнее чем мне надо, максимум 0.1 секунда должна быть, для 10 запросов в секунду. Не знаю что там у тебя, а мну в качестве "сервера" обыкновенная десктопная машинка, не первой свежести Prepare time - время подготовки запроса Execute time - время его выполнения если я воткну эти 5000 (5 тысяч) значений в таблицу, и сделаю соответствующую выборку select t.* from table_data t,table_where w where t.code=w.code ну или последовательно 10 раз выполню запрос select t.* from table_data t,table_where w where t.code=w.code and w.nw = :nw мне записи вернет я думаю за приемлемое время. НЕ могу сейчас проверить, да и лень честно говоря ЗЫ. Все-же еще раз советую обратиться в форум соответствующий твоей СУБД. Там больше пользы будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2009, 21:35 |
|
||
|
Подскажите правильно ли я мыслю
|
|||
|---|---|---|---|
|
#18+
Гость совсем ГостьЗЫ. Все-же еще раз советую обратиться в форум соответствующий твоей СУБД. Там больше пользы будет.Разве это образумит вошедшего во вкус флудераста? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2009, 21:42 |
|
||
|
Подскажите правильно ли я мыслю
|
|||
|---|---|---|---|
|
#18+
всё, нашел решение для моего случая, редко вызываемые ID будут периодически выноситься в отдельную таблицу, что уменьшит основную таблицу значительно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2009, 23:05 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35882918&tid=1543365]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 242ms |
| total: | 410ms |

| 0 / 0 |
