|
|
|
Индекс по полю DateTime
|
|||
|---|---|---|---|
|
#18+
Добрый день. Начал разбираться с PostGreSQL и pgadmin. Есть тестовая страница на 100000 записей, в ней поля типа datetime. делаю выборку по данному полю без индекса и добавляю btree индекс. Результат одинаков. Можете подсказать, в чем причина? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 15:08 |
|
||
|
Индекс по полю DateTime
|
|||
|---|---|---|---|
|
#18+
dbnameДобрый день. Начал разбираться с PostGreSQL и pgadmin. Есть тестовая страница на 100000 записей, в ней поля типа datetime. делаю выборку по данному полю без индекса и добавляю btree индекс. Результат одинаков. Можете подсказать, в чем причина? в последовательности аминокислот , вашЪ КО ЗЫ: и где планы тестовых запросов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 15:31 |
|
||
|
Индекс по полю DateTime
|
|||
|---|---|---|---|
|
#18+
qwwq, "Bitmap Heap Scan on "Services" (cost=417.51..1397.42 rows=11033 width=31)" " Recheck Cond: ("CreatedDate" = '2015-07-01 00:00:00'::timestamp without time zone)" " -> Bitmap Index Scan on d1 (cost=0.00..414.75 rows=11033 width=0)" " Index Cond: ("CreatedDate" = '2015-07-01 00:00:00'::timestamp without time zone)" если не ошибся, то это план запроса. Название индекса "d1" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 15:51 |
|
||
|
Индекс по полю DateTime
|
|||
|---|---|---|---|
|
#18+
dbnameРезультат одинаков. Можете подсказать, в чем причина?Фундаментальная особенность реляционных СУБД - индекс на результат выборки не влияет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 15:57 |
|
||
|
Индекс по полю DateTime
|
|||
|---|---|---|---|
|
#18+
p2.dbnameРезультат одинаков. Можете подсказать, в чем причина?Фундаментальная особенность реляционных СУБД - индекс на результат выборки не влияет.поправка: "валидные индексы". вот токо сёдни лондайст блажил -- не мог собрать батча после сбоя -- пришлось реиндексить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 16:05 |
|
||
|
Индекс по полю DateTime
|
|||
|---|---|---|---|
|
#18+
p2., откуда вы хоть все такие умные))) хорошо, не результат, а время выполнения! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 16:06 |
|
||
|
Индекс по полю DateTime
|
|||
|---|---|---|---|
|
#18+
dbname, голубчик , а не приведете ли полные тексты 1. ddl, 2 запросов, 3. их explain analyze , 4. перечень претензий в развёрнутом виде -- будет боле понятно, чем вы ,собственно говоря, недовольны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 16:09 |
|
||
|
Индекс по полю DateTime
|
|||
|---|---|---|---|
|
#18+
dbnamep2., откуда вы хоть все такие умные))) хорошо, не результат, а время выполнения! оттуда же, но последовательность днк несколько понадёжнее, вашЪ КО вас, надеюсь, тоже не пальцем делали ? ("всё, что вы делаете руками" -- вот это вот всё ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 16:11 |
|
||
|
Индекс по полю DateTime
|
|||
|---|---|---|---|
|
#18+
qwwq, сами вы голубчик) таблица содержит 100000 произвольных записей 1 . CREATE TABLE dbo."Test" ( "Id" serial NOT NULL, "CreatedDate" timestamp without time zone NOT NULL DEFAULT '0001-01-01 00:00:00'::timestamp without time zone, "ClosedDate" timestamp without time zone, ) WITH ( OIDS=FALSE ); ALTER TABLE dbo."Test" OWNER TO postgres; 2. . select * from dbo."Test" where "CreatedDate" between '2015-07-01 00:00:00' and '2015-07-01 00:00:00' 3. "Seq Scan on "Services" (cost=0.00..2357.01 rows=11033 width=31)" " Filter: (("CreatedDate" >= '2015-07-01 00:00:00'::timestamp without time zone) AND ("CreatedDate" <= '2015-07-01 00:00:00'::timestamp without time zone))" 4. скорость выполнения запроса без индекса 552ms, c индексом 551ms ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 16:17 |
|
||
|
Индекс по полю DateTime
|
|||
|---|---|---|---|
|
#18+
dbname, 1)нужны результаты explain analyze а не просто explain (Для обоих случаев) 2)нужен конкретный выполняемый запрос 3)нужна команда которой вы создавали индекс -- Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 16:22 |
|
||
|
Индекс по полю DateTime
|
|||
|---|---|---|---|
|
#18+
dbname, голубчик, а что у вас со зрением ? вас просили: автор3. их explain analyze , а вы ,извиняюсь, что подсовываете ? что вам, впадлу набрать Код: sql 1. PS: и где ddl индекса и такой же вывод explain analyze для случая с индексом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 16:25 |
|
||
|
Индекс по полю DateTime
|
|||
|---|---|---|---|
|
#18+
dbname 4. скорость выполнения запроса без индекса 552ms, c индексом 551ms по какому счётчику мерили ? или это -- общее время с затратами на фетч 11000 строк [по сети] ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 16:31 |
|
||
|
Индекс по полю DateTime
|
|||
|---|---|---|---|
|
#18+
qwwqили это -- общее время с затратами на фетч 11000 строк [по сети] ?Оптимизатор посчитал все 11033. Так что индекс тут как собаке пятое колесо хоть по сети, хоть без. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 16:41 |
|
||
|
Индекс по полю DateTime
|
|||
|---|---|---|---|
|
#18+
p2.qwwqили это -- общее время с затратами на фетч 11000 строк [по сети] ?Оптимизатор посчитал все 11033. Так что индекс тут как собаке пятое колесо хоть по сети, хоть без. вывсёврёти автортаблица содержит 100000 произвольных записей и оптимизатор не мог посчитать -- он прикинул токо без analyze ожыдаемое число ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 16:46 |
|
||
|
Индекс по полю DateTime
|
|||
|---|---|---|---|
|
#18+
qwwq, вот, отлично, научили меня проводить explain analyze. Я же написал, первый день общаюсь с PostGresql, хоть что-то по делу ответили))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 16:50 |
|
||
|
Индекс по полю DateTime
|
|||
|---|---|---|---|
|
#18+
Maxim Boguk, 1. с индексом: "Seq Scan on "Test" (cost=0.00..2357.01 rows=11033 width=31) (actual time=0.015..14.111 rows=11224 loops=1)" " Filter: (("CreatedDate" >= '2015-07-01 00:00:00'::timestamp without time zone) AND ("CreatedDate" <= '2015-07-01 00:00:00'::timestamp without time zone))" " Rows Removed by Filter: 89777" "Planning time: 0.129 ms" "Execution time: 14.428 ms" без индекса: "Seq Scan on "Test" (cost=0.00..2357.01 rows=11033 width=31) (actual time=0.015..16.987 rows=11224 loops=1)" " Filter: (("CreatedDate" >= '2015-07-01 00:00:00'::timestamp without time zone) AND ("CreatedDate" <= '2015-07-01 00:00:00'::timestamp without time zone))" " Rows Removed by Filter: 89777" "Planning time: 0.839 ms" "Execution time: 17.343 ms" 2 select * from dbo."Test" where "CreatedDate" between '2015-07-01 00:00:00' and '2015-07-01 00:00:00' 3 CREATE INDEX d1 ON dbo."Test" USING hash ("CreatedDate"); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 16:55 |
|
||
|
Индекс по полю DateTime
|
|||
|---|---|---|---|
|
#18+
dbnameqwwq, вот, отлично, научили меня проводить explain analyze. Я же написал, первый день общаюсь с PostGresql, хоть что-то по делу ответили))) тут вам все отвечают по делу. просто вы пока не научились извлекать пользу из дельных советов. т.ч. не расстраивайтесь -- а приведите таки ваши результаты, и сформулируйте наконец претензию внятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 16:55 |
|
||
|
Индекс по полю DateTime
|
|||
|---|---|---|---|
|
#18+
dbname 3 CREATE INDEX d1 ON dbo."Test" USING hash ("CreatedDate"); почитайте про хеш индексы, и посмотрите как вы их пытаетесь использовать. станет понятно почему у вас индекс скан не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 16:59 |
|
||
|
Индекс по полю DateTime
|
|||
|---|---|---|---|
|
#18+
qwwq, проблема в том, что при выполнение запроса я отталкивался от времени, которое отображается внизу справа ))) а не то, которое выводит результат expalin анализа (не знал я об этом инструменте). Теперь вижу, что разница есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 17:00 |
|
||
|
Индекс по полю DateTime
|
|||
|---|---|---|---|
|
#18+
qwwq...жыда...оптимизатор прикинул, причем достаточно точно, что при выборке 11% строк, вероятно разбросанных по таблице, дешевле всю таблицу выseqсканить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 17:01 |
|
||
|
Индекс по полю DateTime
|
|||
|---|---|---|---|
|
#18+
dbnameMaxim Boguk, 1. с индексом: Код: sql 1. 2. 3. 4. 5. без индекса: Код: sql 1. 2. 3. 4. 5. 2 select * from dbo."Test" where "CreatedDate" between '2015-07-01 00:00:00' and '2015-07-01 00:00:00' таки 500 мс -- это с фетчем резалтов. dbname 3 Код: sql 1. 2. 3. 4. -- а вот это смело. в последний раз в доке ничего хорошего про реализацию hash-индекса не обещали. Неужто поправили ? но в принципе понятно -- за 10% оптимайзер не решился лазить произволными доступами, и на индекс просто забил. и правильно сделал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 17:02 |
|
||
|
Индекс по полю DateTime
|
|||
|---|---|---|---|
|
#18+
Lonepsycho, спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 17:04 |
|
||
|
Индекс по полю DateTime
|
|||
|---|---|---|---|
|
#18+
dbnameLonepsycho, спасибо! Прежде чем благодарить за индекс HASH, внимательно про него прочитайте. Особенно пункт про восстановление после сбоя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 17:09 |
|
||
|
Индекс по полю DateTime
|
|||
|---|---|---|---|
|
#18+
qwwq Неужто поправили ? Проверил. В доке предупреждение на месте для версий 9.2, 9.3, 9.4. http://www.postgresql.org/docs/9.2/static/indexes-types.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 17:11 |
|
||
|
Индекс по полю DateTime
|
|||
|---|---|---|---|
|
#18+
ursidodbnameLonepsycho, спасибо! Прежде чем благодарить за индекс HASH, внимательно про него прочитайте. Особенно пункт про восстановление после сбоя.он благодарит за это: REFMHash indexes can only handle simple equality comparisons. The query planner will consider using a hash index whenever an indexed column is involved in a comparison using the = operator. для оператора битвин оно не может быть использовано никогда не говоря о прочих проблемах с хеш--индексами пж ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2015, 17:13 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=39104740&tid=1997634]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
218ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 541ms |

| 0 / 0 |
