Изучаем sql


• Просмотр плана выполнения SQLвыражений для поиска неэффек тивных моментов •



Pdf көрінісі
бет255/261
Дата28.07.2022
өлшемі1,6 Mb.
#147825
1   ...   251   252   253   254   255   256   257   258   ...   261
Байланысты:
Изучаем SQL ( PDFDrive )


Просмотр плана выполнения SQLвыражений для поиска неэффек
тивных моментов

Разработка стратегий индексации для обеспечения эффективного
доступа

Доработка или переписывание SQLвыражений с целью повлиять
на выбор плана выполнения
Как упоминалось в главе 3, каждая БД включает компонент под на
званием 
оптимизатор запросов
, задачей которого является вычисле
ние SQLвыражений и выбор эффективного пути доступа к информа
ционным ресурсам для достижения желаемых результатов. Результат
работы оптимизатора – 
план выполнения
, показывающий, какие ре
сурсы в каком порядке используются. Каждая из трех БД, обсуждае
мых в книге, включает инструменты получения и просмотра плана
выполнения SQLвыражения. Вам понадобится научиться генериро
вать и расшифровывать планы выполнения для своей БД.
Просто чтобы дать вам понять, о чем идет речь, привожу созданный
MySQL план выполнения для запроса, организующего доступ к двум
таблицам:


Дополнительные источники
297
mysql>
EXPLAIN SELECT c.fed_id, a.account_id, a.avail_balance

FROM account a INNER JOIN customer c
> ON a.cust_id = c.cust_id
> WHERE c.cust_type_cd = 'I' \G
***************************
1.
row
***************************
id:
1
select_type:
SIMPLE
table:
c
type:
ALL
possible_keys:
PRIMARY
key:
NULL
key_len:
NULL
ref:
NULL
rows:
13
Extra:
Using
where
***************************
2.
row
***************************
id:
1
select_type:
SIMPLE
table:
a
type:
ref
possible_keys:
fk_a_cust_id
key:
fk_a_cust_id
key_len:
4
ref:
bank.c.cust_id
rows:
1
Extra:
2
rows
in
set
(0.00
sec)
Чтобы увидеть план выполнения этого запроса, я просто поставил пе
ред выражением 
select
ключевое слово 
explain
(объяснить), т. е. сервер
получил команду показать план выполнения, а не результирующий
набор запроса. План включает два этапа. Первый показывает, как бу
дет осуществляться доступ к таблице 
customer
(выполняется доступ ко
всем строкам, поскольку столбец 
cust_type_cd
не имеет индекса). Вто
рой показывает, как будет организован доступ к таблице 
account
(по
средством внешнего ключа 
fk_a_cust_id
). Формирование и расшифров
ка планов выполнения не является предметом рассмотрения для ввод
ной книги по SQL, поэтому в конце данного раздела приведены имею
щиеся источники (книги и учебные курсы). Также в продаже есть
несколько замечательных инструментов, которые помогут строить,
вычислять и настраивать SQLвыражения. Вот некоторые из них:


Достарыңызбен бөлісу:
1   ...   251   252   253   254   255   256   257   258   ...   261




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет