Исходное дерево запроса

Исходное дерево для запроса представлено на рисунке 2.21

                                                                                         
 

 

 


                                                

                                                   

 

 


                                          q2

 

 


 

 

                            q1

 

                                                                 product

 

                                   

                                          

                        

                         clients            orders

 

Рисунок 2.21- Исходное дерево запроса




Расчет сложности запроса

Расчет сложности исходного запроса приведен ниже.

 

,                                                                   (2.1)

 

где - результат естественного соединения таблиц;

- таблицы, участвующие в соединении;

 - псевдонимы, используемые вместо имен таблиц для сокращения записи;

 - операция естественного соединения.

 


 

,                                                                      (2.2)

                                        (2.3)

 

где  - число записей в таблице ;

 - число записей в таблице С;

 - число записей в таблице O;

 - число различных значений в столбце clientid таблицы Clients;

 - число различных значений в столбце clientid таблицы Orders.

 

,

,

,

.

, (2.4)

,                                                                               (2.5)

 

где  - число блоков, записанных в таблице ;

 - длина одной записи таблицы  в блоках;

 - длина одной записи таблицы  в байтах;

- размер одного блока.

Очевидно, что

 

,                                                (2.6)

где  - объем в байтах поля ;

- объем в байтах поля ;

 

,

,

.

.

.

.

, (2.7)

,

,

,

,

. (2.8)

.

Очевидно, что

 

,                                    (2.9)

,

,

,

.


 

.

.

                                                                                  (2.10)

 

где  - операция селекции с логической формулой .

Формула  имеет вид:

 

,                                          (2.11)

,

,                                                        (2.12)

.

 

Так как операция селекции не изменяет структуру таблицы, то

 

,

.

Так как операция проекции располагается последней, то ее не учитывают при расчете сложности запроса.

Окончательно имеем:

 

,                                                    (2.13)

.

 


 

2.1

2.2

2.3

2.3.1

2.3.1.1

2.3.1.2

2.3.1.3

2.3.1.4




Оптимизированное дерево запроса

Оптимизированное дерево для запроса представлено на рисунке 2.22

 

                                                                                                                                
     
 

 

 


                                                

                                                        

                                        q3

                          

                                                             

                                                                        

                                                                     

                                                                                      

                         q2

    

                                                                                          

                                                                                      product     

                         

 

 

                        

                          

                 clients                        orders

Рисунок 2.22 - Оптимизированное дерево запроса


 

Текст оптимизированного запроса на языке SQL

Текст оптимизированного запроса представлен на рисунке 2.23

 

SELECT product.productid, product.name_product; FROM product; WHERE (product.name_product = " Fuzafungin ") INTO TABLE k   SELECT sotruds...name, sotruds..serial_pas, sotruds...number_pas, orders.data_zakaza, orders.orderid as Number_Order; FROM ((orders JOIN clients ON orders. sotrudid = sotruds. sotrudid) JOIN k ON k.productid = orders.productid);

Рисунок 2.23

 




Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: