Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Из-за чего такие тормоза
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 13:43 |
|
||
|
Из-за чего такие тормоза
|
|||
|---|---|---|---|
|
#18+
Из-за того, что условие "Filter: (to_char("second", 'YYYY-MM-DD'::text) = '2006-05-18'::text)" проверяется фильтрацией, а не поиском по индексу. Надо, чтобы использовался индекс по комбинации полей dest, second. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 14:22 |
|
||
|
Из-за чего такие тормоза
|
|||
|---|---|---|---|
|
#18+
Индекс по ("second",dest) есть,но он не используется. А индекс с to_char не создается. CREATE INDEX idx_iptables_MMDD_dest ON iptables(to_char(second,'MM-DD'),dest); ERROR: functions in index expression must be marked IMMUTABLE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 14:44 |
|
||
|
Из-за чего такие тормоза
|
|||
|---|---|---|---|
|
#18+
Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 16:17 |
|
||
|
Из-за чего такие тормоза
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. to_timestamp(second,'YYYY-MM-DD')::timestamp without time zone=to_timestamp('2006-05-18 00:00:00','YYYY-MM-DD')::timestamp without time zone ,если не писать это,то возвращает 0 строк,но время оч малое (быстро выполняется). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 18:52 |
|
||
|
Из-за чего такие тормоза
|
|||
|---|---|---|---|
|
#18+
EXPLAIN SELECT bytes/1024/1024,to_char(second,'HH24:MI:SS'),to_char(first,'HH24:MI:SS'),dest from iptables,net_addr where net_addr.id='1888' and net_addr.ip=iptables.dest and second=to_timestamp('2006-05-18 00:00:00','YYYY-MM-DD')::timestamp without time zone order by second; QUERY PLAN --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Sort (cost=22.56..22.57 rows=4 width=35) Sort Key: iptables."second" -> Nested Loop (cost=0.00..22.52 rows=4 width=35) -> Index Scan using idx_net_addr_id on net_addr (cost=0.00..4.89 rows=2 width=11) Index Cond: (id = 1888) -> Index Scan using iptables_idx_day_dest2 on iptables (cost=0.00..8.77 rows=2 width=35) Index Cond: ((iptables."second" = (to_timestamp('2006-05-18 00:00:00'::text, 'YYYY-MM-DD'::text))::timestamp without time zone) AND ("outer".ip = iptables.dest)) (çàïèñåé: 7) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 18:54 |
|
||
|
Из-за чего такие тормоза
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 19:49 |
|
||
|
Из-за чего такие тормоза
|
|||
|---|---|---|---|
|
#18+
Поле second какого типа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2006, 10:09 |
|
||
|
Из-за чего такие тормоза
|
|||
|---|---|---|---|
|
#18+
posttEXPLAIN SELECT bytes/1024/1024,to_char(second,'HH24:MI:SS'),to_char(first,'HH24:MI:SS'),dest from iptables,net_addr where net_addr.id='1888' and net_addr.ip=iptables.dest and second=to_timestamp('2006-05-18 00:00:00','YYYY-MM-DD')::timestamp without time zone order by second;попробуйте second between to_timestamp('2006-05-18 00:00:00','YYYY-MM-DD')::timestamp without time zone and to_timestamp('2006-05-19 00:00:00','YYYY-MM-DD')::timestamp without time zone при наличии индекса (dest,second) postt Код: plaintext 1. см. IMMUTABLE st_sergПоле second какого типа?timestamp without time zone ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2006, 10:30 |
|
||
|
Из-за чего такие тормоза
|
|||
|---|---|---|---|
|
#18+
Если timestamp without time zone, то создавай по date_trunc('day', second) и в запросе: date_trunc('day', second) = '2006-05-18' или даже лучше по second::date и в запросе second::date = '2006-05-18' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2006, 10:45 |
|
||
|
Из-за чего такие тормоза
|
|||
|---|---|---|---|
|
#18+
как вариант использовать индекс по функции date_trunc(), хотя, думаю, что between всеже лучше будет использовать, если в таблицу часто вставляются данные (не надо будет поддерживать индекс по функции). Только вот правильно ли between использовать?.. хз может лучше Код: plaintext 1. 2. или between Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2006, 10:57 |
|
||
|
Из-за чего такие тормоза
|
|||
|---|---|---|---|
|
#18+
second имеет тип timestamp whith out timezone. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2006, 11:33 |
|
||
|
Из-за чего такие тормоза
|
|||
|---|---|---|---|
|
#18+
st_serg Код: plaintext 1. Зафиг столько to_timestamp ? У меня second between '2006-05-18' and '2006-05-19' катят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2006, 21:48 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=53&tid=2006271]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
75ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 414ms |

| 0 / 0 |
