Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
тормоза
|
|||
|---|---|---|---|
|
#18+
Что-то странное твориться Делаю: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. В первом случае получаем Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. во втором: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. тоесть в одном случае pages_page_id_state используется а в другом нет. При этом в запросе меняеться только word_id=xxx Как это понять? И вообще можно както это всё ускорить? индексы: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. в таблице res_pages2 11 лимонов записей в pages 180000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2005, 16:50 |
|
||
|
тормоза
|
|||
|---|---|---|---|
|
#18+
попробуйте .. вместо id = xx такую комбинацию... id >= xx and id <= xx на оракле такие фокусы часты. а постгресик похож :) (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2005, 17:04 |
|
||
|
тормоза
|
|||
|---|---|---|---|
|
#18+
тьфу ты, что-то я напутал, pages_page_id_state используется и там и там. Проблема в joine в первом случае почему то Merge Join а во втором Nested Loop ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2005, 18:05 |
|
||
|
тормоза
|
|||
|---|---|---|---|
|
#18+
golden13тьфу ты, что-то я напутал, pages_page_id_state используется и там и там. Проблема в joine в первом случае почему то Merge Join а во втором Nested Loop Забавно :) Могу лишь посоветовать изменить запрос :-) А версия сервера какая? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2005, 18:08 |
|
||
|
тормоза
|
|||
|---|---|---|---|
|
#18+
PostgreSQL 8.0 Изменить запрос ? На что? Помоему он простой до нельзя. Непонятно почему отрабатывается по разному. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2005, 18:16 |
|
||
|
тормоза
|
|||
|---|---|---|---|
|
#18+
попробуй FROM res_pages2, pages WHERE pages.state=1 AND res_pages2.page_id=pages.id заменить на FROM res_pages2, (select * from pages where state=1) as pages WHERE res_pages2.page_id=pages.id и покажи explain ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2005, 19:10 |
|
||
|
тормоза
|
|||
|---|---|---|---|
|
#18+
Приведи результаты запросов Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Думается будет 37382, 1356, а вот общее число строк как раз и интересно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2005, 19:32 |
|
||
|
тормоза
|
|||
|---|---|---|---|
|
#18+
Ээээ Секундочку, попробуй 2 индекса: res_pages2(word_id, page_id) pages(id, state) Кажется так. Если не напутал ничего. Хотя конечно знать хоть что-то о селективность данных не помешало б. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2005, 19:38 |
|
||
|
тормоза
|
|||
|---|---|---|---|
|
#18+
Ещё, если план запроса от изменения одного параметра прыгает, можно попробовать гистограмму расширить (см. ALTER TABLE .. SET STATISTICS). IMHO умолчальное значение (default_statistics_target=10) маловато, во всяком случае по опыту работы с другим сервером (Sybase). Там число шагов по-умолчанию = 20, да и то иногда приходится расширять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2005, 03:25 |
|
||
|
тормоза
|
|||
|---|---|---|---|
|
#18+
golden13Что-то странное творитьсяНичего странного. Оптимизатор постгреса предполагает, что word_id=47 соответствует 37382 строк, а word_id=45435 - 1356 строк. Из-за этого он и выбирает разные планы. И он прав, потому что на самом деле для word_id=47 - 27809 строк, а для word_id=45435 - 1 строка. golden13И вообще можно както это всё ускорить?Ускорить первый запрос, который, обратите внимание, возвращает 26566 строк? Индексы word_id,page_id (избавит от сортировки) и state,id (избавит от Filter) немного помогут, но этот запрос все равно не будет выполняться быстрее 374990 миллисекунд, которые выполняется Index Scan по word_id=47. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2005, 10:36 |
|
||
|
тормоза
|
|||
|---|---|---|---|
|
#18+
Всем спасибо. Действительно не обратил внимание что запрос с word_id=47 вовращает гораздо больше записей чем с word_id=45435 Создал индексы Код: plaintext 1. 2. Немного всё убыстрилось, в запросе №1, и вместо Merge Join берётся Nested Loop Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Буду дальше думать, как убыстрить всё это. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2005, 12:24 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=33162247&tid=2007130]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 353ms |

| 0 / 0 |
