Реферат: Швидкість обробки запитів на SQL-серверах укр
Тест 14 знищує усю таблицю.
Запити на вибірку інформації :
Тест 1:" SELECT * FROM DBTEST " - виділити всі елементи ;
Тест 2: " SELECT * FROM DBTEST ORDER BY String" -відсортувати усі елементи за значенням у стовбчику “String”;
Тест 3:" SELECT * FROM DBTEST ORDER BY Number"- відсортува-ти усі елементи за значенням у стовбчику “ Number ”;
Тест 4:"SELECT Sum(Number) FROM DBTEST GROUP BY String"
- скласти усі елементи стовбчика “ Number ” за значенням у стовбчи-ку “String”;
Тест 5:" SELECT Sum(Number) FROM DBTEST GROUP BY
Random" - скласти усі елементи стовбчика “ Number ” за значенням у стовбчику “ Random ”;
Тест 6:" SELECT * FROM DBTEST WHERE Number = 99999 " – визначити усі елементи, у яких значення у стовбчику “ Number ” = 99999;
Тест 7:" SELECT * FROM DBTEST WHERE String = 'User99999'" - визначити усі елементи, у яких значення у стовбчику “String “ = 'User99999' ;
Тест 8 : "SELECT * FROM DBTEST WHERE Number in (SELECT Number FROM DBTEST ) " - визначити усі елементи з множини чисел ;
Тест 9 :"SELECT * FROM DBTEST WHERE Number in (SELECT
Number FROM DBTEST WHERE String < ' User50000 ' ) " - визначити усі елементи з множини елементів, у яких значення у стовбчику “String “ < ' User50000 ';
Тест 10 : " SELECT * FROM DBTEST WHERE Number in (SELECT Number FROM DBTEST WHERE String='User50000')" - визначити усі елементи з множини елементів, у яких значення у стовбчику “String “ = ' User50000';
Тест 11 : " SELECT * FROM DBTEST WHERE Number in (SELECT Number FROM DBTEST WHERE String > ' User10000 ' ) "- визначити усі елементи з множини елементів, у яких значення у стовбчику “String “ > ' User10000' ;
Частина 3 : РЕЗУЛЬТАТИ ТЕСТУВАННЯ
Для наведення прикладу універсальності при використанні написан-ного script при вимірюванні швидкодії, виміряємо швидкість обробки запитів у системі SQLServer 7.0 та MicrosoftAccess 97.
Щоб script сприймався системою Access без суперечень треба змінити параметри ідентифікації :
//var SQL_DataBase = "DSN=OTSt;UID=sa;PWD=;DATABASE=OTSt"
var SQL_DataBase = "DSN=OTStt;UID=;PWD="
Отримані результати приведемо у таблиці :
Тест № | SQL Server 7.0 | Access 97 |
1 | 2,673 | 1,81 |
2 | 7,781 | 5,603 |
3 | 7,356 | 5,211 |
4 | 8,239 | 7,54 |
5 | 0,903 | 0,494 |
6 | 0,345 | 0,231 |
7 | 0,390 | 0,287 |
8 | 11,207 | 7,11 |
9 | 3,843 | 2,53 |
10 | 0,655 | 0,507 |
11 | 11,469 | 9,816 |
12 | 0,3 | 0,285 |
13 | 0,31 | 0,22 |
14 | 55,62 | 34,324 |
Як видно з результатів проведенного вимірювання запити на локальній базі даних Access опрацьовуються значно швидше ніж на сервері.
Аналізуючи запити 2 і 3, 4 і 5, 6 і 7 бачимо, що обробка елементів різних типів у однакових запитах має різний час.
Так наприклад сортувати усіх елементів за значенням у стовбчику “String” опрацьовується повільніше ніж у стовбчику " Number"- причина у розміру елементів цих типів.
Теж саме при обробці запитів 4 і 5 при сумуванні елементів стовбчика " Number" за елементами стовбчиків “ String ” і ” Random”.
Стовбчик “String ” зберігає значення типу String і стовбчик ”Random”
зберігає значення типу Integer, елементи типів мають різний розмір і обробляються з різною швидкістю.
Розглядаючи швидкість обробки множин елментів зазначимо, що чии більше елементів обробляє сервер у базі даних тим більше часу на це йде. Так наприклад запит 10 на пошук у базі даних елемента типу String - 'User50000' ззаймає набагато менше часу ніж пошук елементів, що менше 'User50000'. Таких елементів приблизно 50 тисяч і їх пошук займає досить довгий час. Пошук елементів, що більше 'User10000' займає у сервера ще більший час.