Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как узнать используется ли индекс? / 13 сообщений из 13, страница 1 из 1
16.02.2005, 15:20
    #32918773
s_elected
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать используется ли индекс?
Привет народ!
Только начал изучать PG
и вот вопрос
перед вами 2 плана запроса

Код: 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.
CREATE TABLE example (
exid   serial CONSTRAINT exid_pk PRIMARY KEY,
exname varchar( 255 )
);
--
EXPLAIN ANALYZE SELECT exname FROM example Where exid= 1 ;
/*
                                            QUERY PLAN

--------------------------------------------------------------------------------
-------------------
 Seq Scan on example  (cost=0.00..1.23 rows=1 width=400) (actual time=0.000..0.0
00 rows=1 loops=1)
   Filter: (exid = 1)
 Total runtime: 16.000 ms
(3 rows)
*/
--
DROP INDEX example_idx;
CREATE INDEX example_idx ON example(exid);
--
EXPLAIN ANALYZE SELECT exname FROM example Where exid= 1 ;
/*
                                            QUERY PLAN

--------------------------------------------------------------------------------
-------------------
 Seq Scan on example  (cost=0.00..1.09 rows=1 width=400) (actual time=0.000..0.0
00 rows=1 loops=1)
   Filter: (exid = 1)
 Total runtime: 0.000 ms
(3 rows)
*/

А теперь если не сложно
объясните мне разницу между ними ????
Как узнать что индекс используется ????
В Оракле все видно мол индекс такой-то
А в PG как узнать???

И вообще чем эти планы отличаются ????

Креативу нет предела ;-)
...
Рейтинг: 0 / 0
16.02.2005, 15:33
    #32918817
Как узнать используется ли индекс?
Seq Scan on example - Это значит последовательное сканирование, т.е. индекс не используется.
Index Scan...- Это значит, что используется индекс.
...
Рейтинг: 0 / 0
16.02.2005, 15:35
    #32918818
s_elected
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать используется ли индекс?
Скрябин ДмитрийSeq Scan on example - Это значит последовательное сканирование, т.е. индекс не используется.
Index Scan...- Это значит, что используется индекс.

Спсибо за рояснение т.е. индексы в данном случае не используются ?
...
Рейтинг: 0 / 0
16.02.2005, 15:35
    #32918822
s_elected
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать используется ли индекс?
Да и еще вопрос почему они не используются в данном случае ?
Креативу нет предела ;-)
...
Рейтинг: 0 / 0
16.02.2005, 17:03
    #32919126
LeXa NalBat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать используется ли индекс?
s_electedДа и еще вопрос почему они не используются в данном случае ?Наверное из-за того, что в таблице мало строк. (rows=1)
...
Рейтинг: 0 / 0
16.02.2005, 19:58
    #32919563
Как узнать используется ли индекс?
Планировщик выбирает оптимальное решение использовать индекс, или нет. В это случае, простой перебор будет работать быстрее
...
Рейтинг: 0 / 0
16.02.2005, 20:43
    #32919608
s_elected
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать используется ли индекс?
Скрябин ДмитрийПланировщик выбирает оптимальное решение использовать индекс, или нет. В это случае, простой перебор будет работать быстрее

Ясна типа стоимостной оптимизатор я так понимаю
спасибо что прояснили
...
Рейтинг: 0 / 0
16.02.2005, 20:44
    #32919610
s_elected
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать используется ли индекс?
А как узнать какой индекс используется?
Креативу нет предела ;-)
...
Рейтинг: 0 / 0
17.02.2005, 07:52
    #32919928
Как узнать используется ли индекс?
Ну вот смотри пример:

Код: plaintext
1.
2.
3.
4.
5.
main=> explain select * from clients where id= 4 ;
                                  QUERY PLAN
------------------------------------------------------------------------------
 Index Scan using clients_pkey on clients  (cost= 0 . 00 .. 3 . 03  rows= 1  width= 257 )
   Index Cond: (id =  4 )
(записей:  2 )

Здесь говорится, что в этом запросе по полю id используется индекс clients_pkey
...
Рейтинг: 0 / 0
17.02.2005, 11:59
    #32920470
mwolf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать используется ли индекс?
Тут посмотри.
Очень просто описано, for dummies, правда на английском, но очень просто.
...
Рейтинг: 0 / 0
17.02.2005, 12:02
    #32920479
s_elected
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать используется ли индекс?
Всем огромное спасибо
разобрался с этим вопросом.
Креативу нет предела ;-)
...
Рейтинг: 0 / 0
17.02.2005, 12:03
    #32920486
s_elected
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать используется ли индекс?
Посоветуйте какой тип индексов использывать по
умолчанию Btree
а какой лучше или какой для чего предназначен?
Креативу нет предела ;-)
...
Рейтинг: 0 / 0
17.02.2005, 12:35
    #32920598
LeXa NalBat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать используется ли индекс?
s_electedПосоветуйте какой тип индексов использывать по
умолчанию Btree
а какой лучше или какой для чего предназначен? дока / index types

я использую только btree
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как узнать используется ли индекс? / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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