Реферат: Швидкість обробки запитів на SQL-серверах укр
База даних буде мати вид :
String | Number | Random |
User1 | 1 | 34 |
User2 | 2 | 12 |
User3 | 3 | 75 |
. . . . | . . . . | . . . . |
У наведеному Script функція Connect відповідає за регістрацію в SQLServer і утворення бази даних DBTest .
DSN – ім”я зв”язку, визначається при утворенні джерела даних ODBC.
UID – ідентифікатор користувача, використовується при регістрації на сервері, у SQLServerідентифікатор користувача завжди має починатись з “ sа ” .
PWD – або “ password ” кодове слово доступу , необхідний для регістрації на сервері. В даному випадку не використовуємо.
Функція Record проводить запис у всі рядки бази даних DBTest створені значення , у стовбчик Random – створені генератором випадкових чисел значення від 0 до 99 .
Кількість рядків у таблиці буде 10 000, створення займає 3,5 хвилин. Стовбчик Numberбуде ключем.
Напишемо ще один Script , для тестування швидкості роботи SQLServer . Щоб визначети час відповіді на запит як умога точніше будемо посилати на сервер не один запит , а декілька десятків однакових запитів, обрахувавши середній час відповіді отримаємо точний час обробки запиту і знаходження сервером результуючої множини елементів. Але треба враховувати такий випадок - якщо для підвищення точності послати декілька сотень однакових запитів, то SQLServer почне хешування таблиці для оптимізації своєї роботи
і результати роботи будуть не точні, оскільки при звичайному запиті хешування таблиці не робиться.
// ADO Flags
var adLockOptimistic = 3;
var adOpenStatic = 3;
var SQL_DataBase = "DSN=OTSt;UID=sa;PWD=;DATABASE=OTSt"
//var SQL_DataBase = "DSN=OTStt;UID=;PWD="
var oConn;
var oRs;
function db_Connect(){
// Create ADO Connection Object. Use IISSDK OBDC Souce with
// default sa account and no password
oConn = new ActiveXObject("ADODB.Connection");
oConn.Open(SQL_DataBase);
oConn.CommandTimeout=600;
}
function db_Record(SQL){
var oRs;
// Create ADO Recordset Component, and associate it with ADO connection
oRs = new ActiveXObject("ADODB.Recordset");
oRs.ActiveConnection = oConn;
// Get empty recordset