Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Индекс по полю DateTime / 25 сообщений из 29, страница 1 из 2
16.11.2015, 15:08
    #39104565
dbname
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по полю DateTime
Добрый день.
Начал разбираться с PostGreSQL и pgadmin. Есть тестовая страница на 100000 записей, в ней поля типа datetime. делаю выборку по данному полю без индекса и добавляю btree индекс. Результат одинаков. Можете подсказать, в чем причина?
...
Рейтинг: 0 / 0
16.11.2015, 15:31
    #39104584
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по полю DateTime
dbnameДобрый день.
Начал разбираться с PostGreSQL и pgadmin. Есть тестовая страница на 100000 записей, в ней поля типа datetime. делаю выборку по данному полю без индекса и добавляю btree индекс. Результат одинаков. Можете подсказать, в чем причина?
в последовательности аминокислот , вашЪ КО


ЗЫ: и где планы тестовых запросов?
...
Рейтинг: 0 / 0
16.11.2015, 15:51
    #39104597
dbname
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по полю DateTime
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"
...
Рейтинг: 0 / 0
16.11.2015, 15:57
    #39104602
p2.
p2.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по полю DateTime
dbnameРезультат одинаков. Можете подсказать, в чем причина?Фундаментальная особенность реляционных СУБД - индекс на результат выборки не влияет.
...
Рейтинг: 0 / 0
16.11.2015, 16:05
    #39104616
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по полю DateTime
p2.dbnameРезультат одинаков. Можете подсказать, в чем причина?Фундаментальная особенность реляционных СУБД - индекс на результат выборки не влияет.поправка: "валидные индексы".

вот токо сёдни лондайст блажил -- не мог собрать батча после сбоя -- пришлось реиндексить.
...
Рейтинг: 0 / 0
16.11.2015, 16:06
    #39104617
dbname
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по полю DateTime
p2.,

откуда вы хоть все такие умные))) хорошо, не результат, а время выполнения!
...
Рейтинг: 0 / 0
16.11.2015, 16:09
    #39104623
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по полю DateTime
dbname,
голубчик
, а не приведете ли полные тексты
1. ddl,
2 запросов,
3. их explain analyze ,
4. перечень претензий в развёрнутом виде

-- будет боле понятно, чем вы ,собственно говоря, недовольны
...
Рейтинг: 0 / 0
16.11.2015, 16:11
    #39104626
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по полю DateTime
dbnamep2.,

откуда вы хоть все такие умные))) хорошо, не результат, а время выполнения!
оттуда же, но последовательность днк несколько понадёжнее, вашЪ КО

вас, надеюсь, тоже не пальцем делали ? ("всё, что вы делаете руками" -- вот это вот всё )
...
Рейтинг: 0 / 0
16.11.2015, 16:17
    #39104639
dbname
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по полю DateTime
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
...
Рейтинг: 0 / 0
16.11.2015, 16:22
    #39104651
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по полю DateTime
dbname,

1)нужны результаты explain analyze а не просто explain (Для обоих случаев)
2)нужен конкретный выполняемый запрос
3)нужна команда которой вы создавали индекс

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
16.11.2015, 16:25
    #39104659
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по полю DateTime
dbname,

голубчик, а что у вас со зрением ?

вас просили:

автор3. их explain analyze ,
а вы ,извиняюсь, что подсовываете ?


что вам, впадлу набрать
Код: sql
1.
explain analyze  select * from dbo."Test" where "CreatedDate" between '2015-07-01 00:00:00' and '2015-07-01 00:00:00'




PS:
и где ddl индекса и такой же вывод explain analyze для случая с индексом
...
Рейтинг: 0 / 0
16.11.2015, 16:31
    #39104663
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по полю DateTime
dbname 4. скорость выполнения запроса без индекса 552ms, c индексом 551ms
по какому счётчику мерили ?
или это -- общее время с затратами на фетч 11000 строк [по сети] ?
...
Рейтинг: 0 / 0
16.11.2015, 16:41
    #39104686
p2.
p2.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по полю DateTime
qwwqили это -- общее время с затратами на фетч 11000 строк [по сети] ?Оптимизатор посчитал все 11033. Так что индекс тут как собаке пятое колесо хоть по сети, хоть без.
...
Рейтинг: 0 / 0
16.11.2015, 16:46
    #39104693
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по полю DateTime
p2.qwwqили это -- общее время с затратами на фетч 11000 строк [по сети] ?Оптимизатор посчитал все 11033. Так что индекс тут как собаке пятое колесо хоть по сети, хоть без.

вывсёврёти

автортаблица содержит 100000 произвольных записей
и оптимизатор не мог посчитать -- он прикинул токо без analyze ожыдаемое число
...
Рейтинг: 0 / 0
16.11.2015, 16:50
    #39104703
dbname
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по полю DateTime
qwwq,

вот, отлично, научили меня проводить explain analyze. Я же написал, первый день общаюсь с PostGresql, хоть что-то по делу ответили)))
...
Рейтинг: 0 / 0
16.11.2015, 16:55
    #39104711
dbname
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по полю DateTime
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");
...
Рейтинг: 0 / 0
16.11.2015, 16:55
    #39104712
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по полю DateTime
dbnameqwwq,

вот, отлично, научили меня проводить explain analyze. Я же написал, первый день общаюсь с PostGresql, хоть что-то по делу ответили)))

тут вам все отвечают по делу.

просто вы пока не научились извлекать пользу из дельных советов.

т.ч. не расстраивайтесь -- а приведите таки ваши результаты, и сформулируйте наконец претензию внятно.
...
Рейтинг: 0 / 0
16.11.2015, 16:59
    #39104718
Lonepsycho
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по полю DateTime
dbname 3 CREATE INDEX d1
ON dbo."Test"
USING hash
("CreatedDate"); почитайте про хеш индексы, и посмотрите как вы их пытаетесь использовать. станет понятно почему у вас индекс скан не работает.
...
Рейтинг: 0 / 0
16.11.2015, 17:00
    #39104721
dbname
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по полю DateTime
qwwq,

проблема в том, что при выполнение запроса я отталкивался от времени, которое отображается внизу справа ))) а не то, которое выводит результат expalin анализа (не знал я об этом инструменте). Теперь вижу, что разница есть.
...
Рейтинг: 0 / 0
16.11.2015, 17:01
    #39104726
p2.
p2.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по полю DateTime
qwwq...жыда...оптимизатор прикинул, причем достаточно точно, что при выборке 11% строк, вероятно разбросанных по таблице, дешевле всю таблицу выseqсканить.
...
Рейтинг: 0 / 0
16.11.2015, 17:02
    #39104728
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по полю DateTime
dbnameMaxim Boguk,

1. с индексом:
Код: sql
1.
2.
3.
4.
5.
"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"



без индекса:
Код: sql
1.
2.
3.
4.
5.
"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'

таки 500 мс -- это с фетчем резалтов.


dbname 3
Код: sql
1.
2.
3.
4.
CREATE INDEX d1
  ON dbo."Test"
  USING hash
  ("CreatedDate");


-- а вот это смело. в последний раз в доке ничего хорошего про реализацию hash-индекса не обещали. Неужто поправили ?


но в принципе понятно -- за 10% оптимайзер не решился лазить произволными доступами, и на индекс просто забил.
и правильно сделал.
...
Рейтинг: 0 / 0
16.11.2015, 17:04
    #39104733
dbname
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по полю DateTime
Lonepsycho,
спасибо!
...
Рейтинг: 0 / 0
16.11.2015, 17:09
    #39104740
ursido
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по полю DateTime
dbnameLonepsycho,
спасибо!

Прежде чем благодарить за индекс HASH, внимательно про него прочитайте. Особенно пункт про восстановление после сбоя.
...
Рейтинг: 0 / 0
16.11.2015, 17:11
    #39104741
ursido
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по полю DateTime
qwwq Неужто поправили ?

Проверил. В доке предупреждение на месте для версий 9.2, 9.3, 9.4.
http://www.postgresql.org/docs/9.2/static/indexes-types.html
...
Рейтинг: 0 / 0
16.11.2015, 17:13
    #39104745
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по полю DateTime
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.

для оператора битвин оно не может быть использовано никогда

не говоря о прочих проблемах с хеш--индексами пж
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Индекс по полю DateTime / 25 сообщений из 29, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]