Сравнительный анализ эффективности выбора данных, страница 8

Число

Строк

Время выполнения, сек

DB2

Informix

MS SQL Server

инд.

неинд.

инд.

неинд.

инд.

неинд.

200000

49

51

70

82

31

31

600000

140

143

256

267

79

108

1000000

272

275

425

432

185

197

1400000

390

394

564

568

227

236

1600000

456

457

630

633

240

251

Рис. 3.71 Объединение пяти столбцов

для неиндексированной базы данных

Рис. 3.72 Объединение пяти столбцов

для индексированной базы данных


Рис. 3.73 Объединение пяти столбцов для индексированной и неиндексированной базы данных для MS SQL Server

Рис. 3.74 Объединение пяти столбцов для индексированной и неиндексированной базы данных для Informix


Рис. 3.75 Объединение пяти столбцов для индексированной и неиндексированной базы данных для DB2

Соединения

1.  Внешнее соединение (outer) – в результат соединения будут включены все строки главной таблицы независимо от того, есть ли для них соответствующие строки в подчиненной таблице (главная таблица – это таблица, имя которой стоит в запросе левее слова outer, подчиненная таблица – это таблица, перед именем которой стоит слово outer).

Внешнее соединение (табл. 3.25)

Текст запроса:

1.  Select Phones.Class, Phone_class.Description FROM Phones, outer Phone_class where Phones.Class=Phone_class.Class;

2.  Select Phones.Class, Phone_class.Description, Phones.Type, Phone_type.Description FROM Phones, outer Phone_class, outer Phone_type where Phones.Class = Phone_class.Class and Phones.Type = Phone_type.Type;

3.  Select Phones.Class, Phone_class.Description, Phones.Type, Phone_type.Description, Phones.ATS_number, ATS.Type FROM Phones, outer Phone_class, outer Phone_type, outer ATS where Phones.Class = Phone_class.Class and Phones.Type = Phone_type.Type and Phones.ATS_number = ATS.ATS_number;

4.  Select Phones.Class, Phone_class.Description, Phones.Type, Phone_type.Description, Phones.ATS_number, ATS.Type, Phones.Priv_type, Privileges.Description FROM Phones, outer Phone_class, outer Phone_type, outer ATS, outer Privileges where Phones.Class = Phone_class.Class and Phones.Type = Phone_type.Type and Phones.ATS_number = ATS.ATS_number and Phones.Priv_type = Privileges.Priv_type.

Таблица 3.25

Число

таблиц

Время выполнения, сек

DB2

Informix

MS SQL Server

инд.

неинд.

инд.

неинд.

инд.

неинд.

2

103

128

105

127

19

48

3

129

143

130

140

45

124

4

138

147

142

145

56

136

5

160

164

160

161

64

138

Рис. 3.76 Внешнее соединение таблиц

для неиндексированной базы данных

Рис. 3.77 Внешнее соединение таблиц

для неиндексированной базы данных

Рис. 3.78 Внешнее соединение таблиц для индексированной и неиндексированной базы данных для MS SQL Server


Рис. 3.79 Внешнее соединение таблиц для индексированной и неиндексированной базы данных для Informix

Рис. 3.80 Внешнее соединение таблиц для индексированной и неиндексированной базы данных для DB2

2.  Простое соединение (cross) – в результате такого типа соединения происходит связывание каждой строки первой таблицы с каждой строкой правой таблицы.