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

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

Рис. 3.32 Группировка по одному столбцу

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


Рис. 3.33 Группировка по одному столбцу для индексированной и неиндексированной базы данных для MS SQL Server

Рис. 3.34 Группировка по одному столбцу для индексированной и неиндексированной базы данных для Informix


Рис. 3.35 Группировка по одному столбцу для индексированной и неиндексированной базы данных для DB2

2.2.  Группировка по двум столбцам различного числа строк (табл. 3.16)

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

Select ats_number, class, avg(number), max(number), min(number),  count(*) from phones where number < «ограничение на число строк» group by ats_number, class having ats_number > 15 and count(*) >5

Таблица 3.16

Число

Строк

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

DB2

Informix

MS SQL Server

инд.

неинд.

инд.

неинд.

инд.

неинд.

100000

3

4

5

8

0

0

300000

15

17

30

32

2

2

500000

26

31

57

58

3

5

700000

38

43

82

82

6

8

800000

46

50

95

95

7

9

Рис. 3.36 Группировка по двум столбцам для неиндексированной базы данных

Рис. 3.37 Группировка по двум столбцам для индексированной базы данных


Рис. 3.38 Группировка по двум столбцам для индексированной и неиндексированной базы данных для MS SQL Server

Рис. 3.39 Группировка по двум столбцам для индексированной и неиндексированной базы данных для Informix


Рис. 3.40 Группировка по двум столбцам для индексированной и неиндексированной базы данных для DB2

2.3.  Группировка по трем столбцам различного числа строк (табл. 3.17)

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

Select house, surname, name, max(length(surname)-length(name)), min(length(surname)+length(name)), avg((length(name)-length(surname))/length(name)), count(*) from abonents where ID < «ограничение на число строк» group by house, surname, name having house between 10 and 30 and count(*)>3 and max(length(surname)-length(name))=3

Таблица 3.17

Число

Строк

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

DB2

Informix

MS SQL Server

инд.

неинд.

инд.

неинд.

инд.

неинд.

100000

2

5

4

9

1

1

300000

4

6

11

12

2

3

500000

5

8

15

20

3

4

700000

7

10

18

26

5

5

800000

8

11

20

29

5

5

Рис. 3.41 Группировка по трем столбцам

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

Рис. 3.42 Группировка по трем столбцам

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


Рис. 3.43 Группировка по трем столбцам индексированной и неиндексированной базы данных для MS SQL Server

Рис. 3.44 Группировка по трем столбцам индексированной и неиндексированной базы данных для Informix


Рис. 3.45 Группировка по трем столбцам индексированной и неиндексированной базы данных для DB2

2.4.  Группировка по четырем столбцам различного числа строк (табл. 3.18)

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

Select surname, name, patronymic, house, max(length(surname)), min(length(name)), avg(length(patronymic)), avg(house) from abonents where ID < «ограничение на число строк» group by surname, name, patronymic, house having surname like `Surname_23%` and house > 13 and min(length(name))>2 and avg(house)!=10