Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Тормозит простой запрос - помогите!
|
|||
|---|---|---|---|
|
#18+
Тупой запрос: SELECT count(id) AS count FROM my_table WHERE verify=1 таблица с 90 000 записей. Из них verify=1 имеют ~88000 записей Работает около 5 секунд. Как можно ускорить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 13:00 |
|
||
|
Тормозит простой запрос - помогите!
|
|||
|---|---|---|---|
|
#18+
Попробуйте индекс построить на (verify, id) И план покажите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 13:16 |
|
||
|
Тормозит простой запрос - помогите!
|
|||
|---|---|---|---|
|
#18+
yackТупой запрос: SELECT count(id) AS count FROM my_table WHERE verify=1 таблица с 90 000 записей. Из них verify=1 имеют ~88000 записей Работает около 5 секунд. Как можно ускорить?А сколько должен работать? Если у вас oltp, то просто не надо делать таких запросов (или добавить слабую сущность), если dss то 5 сек. можно подождать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 14:00 |
|
||
|
Тормозит простой запрос - помогите!
|
|||
|---|---|---|---|
|
#18+
Евгений Фадеев Попробуйте индекс построить на (verify, id). Неплохо также Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 15:10 |
|
||
|
Тормозит простой запрос - помогите!
|
|||
|---|---|---|---|
|
#18+
UPDATE STATISTICS делаю регулярно. Система OLTP (не OLAP). Индекс по verify есть. Но он по сути ничего не дает, т.к. тормоз дает именно инкремент в count (тот же запрос, но с verify=0 выполняется в момент, т.к. таких записей всего около 2000) При этом такая скорость выполнения никак не допустима, а запрос нужеен именно такой - испосьзуется для построения разбивки на страницы на веб. План запроса прилагаю. ------ SELECT count(id) AS count FROM photos WHERE 1=verify Estimated Cost: 75022 Estimated # of Rows Returned: 1 1) informix.photos: INDEX PATH (1) Index Keys: verify (Serial, fragments: ALL) Lower Index Filter: informix.photos.verify = 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 17:18 |
|
||
|
Тормозит простой запрос - помогите!
|
|||
|---|---|---|---|
|
#18+
авторИз них verify=1 имеют ~88000 записей авторEstimated # of Rows Returned: 1 Все нормально со статистикой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 17:41 |
|
||
|
Тормозит простой запрос - помогите!
|
|||
|---|---|---|---|
|
#18+
Внимательнее: SELECT count как раз и возвращает 1 запись с кол-вом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:05 |
|
||
|
Тормозит простой запрос - помогите!
|
|||
|---|---|---|---|
|
#18+
Время работы менее 1 секунды на любых серверах. Проверьте Код: 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. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:10 |
|
||
|
Тормозит простой запрос - помогите!
|
|||
|---|---|---|---|
|
#18+
yack SELECT count(id) AS count FROM photos WHERE 1=verify count(*) Я бы завел таблицу гдебы хранил число, и поддерживал триггерами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:17 |
|
||
|
Тормозит простой запрос - помогите!
|
|||
|---|---|---|---|
|
#18+
select count(id) from my_table where 1=verify; - так я пробовал, но результат тот же. select verify,count(*) from my_table group by 1; - а вот это очень хорошО, спасибо большое за идею. Буду теперь думать, как это заюзать в прикладухе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:18 |
|
||
|
Тормозит простой запрос - помогите!
|
|||
|---|---|---|---|
|
#18+
Журавлев Денис yack SELECT count(id) AS count FROM photos WHERE 1=verify count(*) Я бы завел таблицу гдебы хранил число, и поддерживал триггерами Тут есть проблемы - этот count(id) в ряде имеет около 10 дополнительных WHERE в запросе, для каждого из которых хранить статистику не представляется разумным :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:20 |
|
||
|
Тормозит простой запрос - помогите!
|
|||
|---|---|---|---|
|
#18+
yackТут есть проблемы - этот count(id)Вы понимаете чем отличается count(id) от count(*) ? yack в ряде имеет около 10 дополнительных WHERE в запросе, для каждого из которых хранить статистику не представляется разумным :)Ничего не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:26 |
|
||
|
Тормозит простой запрос - помогите!
|
|||
|---|---|---|---|
|
#18+
Кстати про разбивку на страницы. Поисковики на самом деле когда показывают 10 20 30 40 ... 110, показывают неточные числа. например видим 6 страниц, но на самом деле их 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:30 |
|
||
|
Тормозит простой запрос - помогите!
|
|||
|---|---|---|---|
|
#18+
Журавлев ДенисКстати про разбивку на страницы. Поисковики на самом деле когда показывают 10 20 30 40 ... 110, показывают неточные числа. например видим 6 страниц, но на самом деле их 2. Хороший пример, никогда не обращал внимания ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 18:48 |
|
||
|
Тормозит простой запрос - помогите!
|
|||
|---|---|---|---|
|
#18+
yackUPDATE STATISTICS делаю регулярно. Система OLTP (не OLAP). Индекс по verify есть. Но он по сути ничего не дает, т.к. тормоз дает именно инкремент в count (тот же запрос, но с verify=0 выполняется в момент, т.к. таких записей всего около 2000) При этом такая скорость выполнения никак не допустима, а запрос нужеен именно такой - испосьзуется для построения разбивки на страницы на веб. План запроса прилагаю. ------ SELECT count(id) AS count FROM photos WHERE 1=verify Estimated Cost: 75022 Estimated # of Rows Returned: 1 1) informix.photos: INDEX PATH (1) Index Keys: verify (Serial, fragments: ALL) Lower Index Filter: informix.photos.verify = 1 yackUPDATE STATISTICS делаю регулярно. Система OLTP (не OLAP). Индекс по verify есть. Но он по сути ничего не дает, т.к. тормоз дает именно инкремент в count (тот же запрос, но с verify=0 выполняется в момент, т.к. таких записей всего около 2000) При этом такая скорость выполнения никак не допустима, а запрос нужеен именно такой - испосьзуется для построения разбивки на страницы на веб. План запроса прилагаю. ------ SELECT count(id) AS count FROM photos WHERE 1=verify Estimated Cost: 75022 Estimated # of Rows Returned: 1 1) informix.photos: INDEX PATH (1) Index Keys: verify (Serial, fragments: ALL) Lower Index Filter: informix.photos.verify = 1 Есть несколько моментов: 1. Откажитесь от использования индекса через хинт. В данном случае будет производиться полное сканирование таблицы при этом скорость чтения страниц таблицы( с данными) с диска будет производиться быстрее. В случае индексного поиска Informix читает одну страницу за одну операцию ввода вывода. в случае full scan, он читает за одну дисковую операцию столько страниц сколько ему позволяет ОС. 2. Прислушайтесь к замечанию Дениса автор Вы понимаете чем отличается count(id) от count(*) ? Я не знаю так глубоко тонкости работы оптимизатора , но по логике, если вы защитите поле id not null констраинтом оптимизатор будет ( по логике должен) для получения результатов запроса использовать только индекс, не обращаясь к страницам данных. 3. При проектирование OLTP системы нужно учитывать, что индексный поиск должен работать с полями и значениями с максимально высокой селективностью. Если это Ваша разработка подумайте над дизайном. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 10:43 |
|
||
|
Тормозит простой запрос - помогите!
|
|||
|---|---|---|---|
|
#18+
Может я чего-то и не понимаю, но по-моему, надо считать не COUNT( id ), COUNT( verify ) - тогда в плане появится волшебное (Key-Only)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2007, 11:05 |
|
||
|
|

start [/forum/topic.php?fid=44&msg=34911304&tid=1608272]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
71ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
74ms |
get tp. blocked users: |
2ms |
| others: | 256ms |
| total: | 456ms |

| 0 / 0 |
