2.1 ТЕХНОЛОГІЯ DAO
(Data Access Object – об”єкти доступу до данних) приззначена для викоритання об”єктів, методів, властивотей, значно полегшшують роботу програмного додатку з базою даних. Для обміну інформацією з SQL сервером в об”єктах DAO викоритову-ються рівні дотупу Jet і ODBC, одна вони утворюють ще один рівень абстракції між додатками і викликами функцій ODBC, які використовуються при обробці запитів.
Технологія DAO для роботи з базами даних, таблицями, видами передбачає викоритання коллекцій об”єктів. Наприклад для створення нової таблиці легше викликати метод Add відповідного об”єкта, між використовувати стандартний підхід технології ODBC.
При роботі з базою даних можна використати стандартний підхід для доступу до майже будь-якого сховища даних, що підтриимується засобоми ODBC.
Але треба відмітити, що технологія DAO поступово витісняється більш прогресивною технологією ADO(ActiveX Data Object – об”єкти данх ActiveX ) .
З метою можливого встановлення зв”язку з різними СУБД фірмою Microsoft була розроблена технологія ODBC . Вона забезпечує створення додаткового рівня абстракції між програмним додатком і СУБД. Даний рівень дозволяє створити одну команду Select і використовувати її для виборки даних з будь-яких підтримуємих типів баз даних, враховуючи ті випадки, коли СУБД взагалі не підтримує мову SQL.
Служби ODBC являють собою окремий рівень доступу до файлів баз даних. ODBC бере на себе відповідальністьза отримання від до-датків запитів на вибірку інформації і переведення їх на мову, що використовує ядро база даних, для обробки запиту. Гарним прикладом використання ODBC технології є СУБД Access фірми Microsoft. Головна різниця між ODBC і BD-Lib полягає у тому, що ODBC вимагає побудови і передачі йому лише стандартних SQL команд, а BD-Lib вимагає особливого синтаксису при побудові у буфері команд, що напрравляються безпосередньо у серверне середовище.
Головним недоліком ODBC є необхідність в трансляції запитів. Проведення цієї додаткової роботи відповідно відображається на швидкості доступу до даних. При роботі з ODBC можна отримати суттєвий виграш у швидкості обробки даних, якщо в системі клі-єнт/сервер саме на сервері системи SQL Server буде оброблятись запит, а не на клієнтському комп”ютері. Також приріст у швидкості роботи ODBC дає використання встроєнних процедур.
Тепер перейдемо до процесів, що пов”язані з вимірюванням швидкості системи SQL Server 7.0 . У данній роботі прпонується написання програмного додатку на встроєнному shell OS Windows NT - Java Script . Сам програмний додаток це програма написана для інтерпритуюча мова. Файл з розширенням . js буде виконавчим для OS Windows NT. Спочатку напишемо Script для створення бази даних :
// 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
oRs.Source = SQL;
oRs.CursorType = adOpenStatic; // use a cursor
other than Forward Only
oRs.LockType = adLockOptimistic; // use a locktype
permitting insertions
oRs.Open();
return oRs;
}
function db_Close(){
oConn.Close();
}
function db_Requery(Rec,SQL){
Rec.Close();
Rec.Source = SQL;
Rec.Open();
}
db_Connect();
try {
oRs=db_Record("CREATE TABLE dbo.DBTEST ( String char (30) NULL, Number int NOT NULL DEFAULT (0), Random int NOT NULL DEFAULT (0))");
} catch (e) {
}
oRs=db_Record("SELECT * FROM DBTEST WHERE 0=1");
for(i=0;i ' User10000 ' ) "- визначити усі елементи з множини елементів, у яких значення у стовбчику “String “ > ' User10000' ;
Частина 3 : РЕЗУЛЬТАТИ ТЕСТУВАННЯ
Для наведення прикладу універсальності при використанні написан-ного script при вимірюванні швидкодії, виміряємо швидкість обробки запитів у системі SQL Server 7.0 та Microsoft Access 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' займає у сервера ще більший час.
Запити 12,13 визначають час занесення до бази нового рядка і вилучення рядка з бази даних.
Проводячи наведені дослідження за роботою сервера ми отримуємо повну характеристику його роботи.
Використаємо наведені вище програмні додатки і проведемо виміри на інших SQL-серверах. Порівняємо швидкості роботи SQL Server 7.0 і Oracle 8 :
Тест № | SQL Server 7.0 | Oracle 8 |
1 | 2,673 | 2,71 |
2 | 7,781 | 8,06 |
3 | 7,356 | 8,09 |
4 | 8,239 | 8,75 |
5 | 0,903 | 1,041 |
6 | 0,345 | 0,4 |
7 | 0,390 | 0,432 |
8 | 11,207 | 11,917 |
9 | 3,843 | 4,05 |
10 | 0,655 | 0,78 |
11 | 11,469 | 12,021 |
12 | 0,3 | 0,295 |
13 | 0,31 | 0,291 |
14 | 55,62 | 43,134 |
Як видно з результатів SQL Server 7.0 працює швидше за Oracle 8 при обробці вибірок, а при вставці і вилученні елементів у Oracle краші результати. Це можна пояснити різною будовою ядер обробки запитів.
Проведемо такіж заміри і для SQL сервера Informix.
Тест № | SQL Server 7.0 | Informix |
1 | 2,673 | 2,11 |
2 | 7,781 | 6,932 |
3 | 7,356 | 7,138 |
4 | 8,239 | 7,934 |
5 | 0,903 | 0,856 |
6 | 0,345 | 0,456 |
7 | 0,390 | 0,471 |
8 | 11,207 | 13,04 |
9 | 3,843 | 4,41 |
10 | 0,655 | 0,748 |
11 | 11,469 | 12,814 |
12 | 0,3 | 0,315 |
13 | 0,31 | 0,31 |
14 | 55,62 | 51,48 |
По результам видно, що SQL Server 7.0 працює повільніше за Informix при обробці простих запитів, а при пошуку і порівнянні елементів працює швидше. На запитах по вставці і вилученні елементів у Informix і SQL Server 7.0 майже однакові результати.
Таким чином ми досягли мети данної роботи - побудували програмні додатки, якими змогли визначити характеристики працездатності різних серверних баз даних.
В результаті проведенної роботи було розглянуто різні фактори, що впливають на швидкість роботи системи SQL Server 7.0.
Були написані дві програми, що дають змогу вимірювати швид-кість обробки запитів багаторівневою серверною системою Microsoft SQL Server 7.0 і тим самим дають можливість досліджувати ефективність настройки параметрів системи, дають змогу оцінити оптимальність побудови бази даних, оптимальність використання індексів, правил, обмежень, ефективність роботи з транзакціями.
Були розглянуті сильні і слабкі боки технологій роботи з програмними додатками - DB-Library та ODBC з DAO.
Як приклад роботи програмних додатків отримані дані про швидкодію систем баз даних SQL Server 7.0 та Microsoft Access 97.
Порівняні результати застосування програмних додатків у системах SQL-серверів таких як Oracle та Informix з швидкістю роботи Microsoft SQL Server 7.0.
Використовуючи написані script-и програмісти і розробники систем баз даних типу клієнт/сервер можуть визначати характеристики створених ними систем з ціллю аналізу і удосконалення.
СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ :
“Використання Microsoft SQL Server 7.0” Стефан Вінкоп
вид. Москва 1999 р.
“ Teach Yourself Oracle 8 In 21 Days” Cary N. Prague
“ Секреты Access 97” Уильям Амо изд.Диалектика 1997р.
“ Технологія Java” Джо Вебер вид. “BHV” 1996 р.
Журнал “PC World” № 3,7,8 за 97 р., № 1,9 за 98 р.
www.techrepublic.com
... между SQL Server и остальной системой на выделенном компьютере. SQL Server использует память в количестве, отведенном ему настраиваемым параметром "memory". Machine Memory, (MB) SQL Server Memory, (MB) 16 24 32 48 64 128 256 512 4 6 16 28 40 100 216 464 Не следует выделять SQL Server слишком много памяти (относительно общего объема памяти ...
... Java, JavaScript и встроенные в сервер средства LiveConnect. Более мощными реляционными возможностями доступа к базе данных и более эффективным выполнением виртуальной Java-машины будут расширены услуги разработки приложений, обеспечиваемых в Enterprise Server 2.0,. Сервис управления. В дополнение к использованию встроенной машины каталога LDAP Enterprise Server 2.0 будет управляем через общие ...
... хранимых процедур на других серверах. RPC представляет собой достаточно удобный способ работы с распределенными данными без необходимости внесения изменений в клиентскую часть приложения. MS Distributed Transaction Coordinator (DTC). Создание распределенных приложений приводит к тому, что транзакции также приобретают распределенный характер. Структуризация приложения в виде многих самостоятельных ...
... средних и крупных государственных и коммерческих организаций постепенно отказываются от использования только ПК, задачей сегодняшнего дня - создание открытых и распределенных информационных систем. На сегодняшний день развитие информационных технологий - создание единых сетей предприятий и корпораций, объединяющих удаленные компьютеры и локальные сети, часто использующие разные платформы, в ...
0 комментариев