SPEEDS SQL server (Скорость обработки запросов на SQL серверах)

2016-07-31СтудИзба

Описание файла

Документ из архива "Скорость обработки запросов на SQL серверах", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "SPEEDS SQL server"

Текст из документа "SPEEDS SQL server"

МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ

КИЇВСЬКИЙ УНІВЕРСІТЕТ ІМЕНІ ТАРАСА ШЕВЧЕНКА

Факультет кібернетики

Кафедра теоретичної кібернетики

ВИПУСКНА КВАЛІФІКАЦІЙНА РОБОТА

БАКЛАВРА

На тему : Швидкість обробки запитів

на SQL-серверах

Виконавець: студент 4 курсу

Дима Павло Костянтинович

Науковий керівник : ассистент Коваль Ю.В.

Випускна кваліфікаційна робота бакалавра

Рекомендована до захисту в ДЕК

Протокол № 10, від “25” травня 2000 р.

Зав.кафедри проф. Белов Ю.А

м Київ - 2000

ЗМІСТ

1.Вступ………..………………………………………………………….2

2.Швидкість роботи SQL сервера…………………………………….5

2.1 Технологія DAO…….………………………………………………6

2.2 Технологія ODBC…..………………………………………………6

2.3 JSCRIPT……………………………………………………………..7

3. Результати тестування..…………………………………………….17

Висновок………………………………………………………………..21

Список використаної літератури…………………………………….22

Частина 1 : ВСТУП

У світі сучасних інформаційних технологій особливо виділяє-ться всесвітня мережа Internet. Опорним елементом в цій мережі є сервера баз данних. Саме на сервері зберігається інформація до якої можуть отримати доступ користувачі. При роботі користувача з базою данних в Internet, він посилає запит до бази даннихю цей запит сформовано за правилами мови SQL (Structured Query Language) – мова структурованих запитів.

В мережах використовуються такі SQL–сервера як Oracle, Microsoft SQL Server, Sybase, dbase, Informix, Progress та інші. Як приклад SQL – сервера візьмемо Microsoft SQL Server 7.0 .

Система MS SQL Server - це багаторівнева система обміну данними від клієнта до сервера, дозволяє створювати і підтримувати бази данних.

На відіну від бази данних орієнтованих на великі комп”ютери та міні-комп”ютери, до серверної бази данних користувачі отримують доступ зі своїх комп”ютерів, а не з допомогою терміналів. При цьому механізми роботи SQL-сервера допомагає розв”язувати проблеми, що виникають у результаті звернень до бази данних багатьох комп”ютерів, кожен з яких може незалежно звертатись до різних частин бази данних, що зберігається на сервері.

Зв”язок системи клієнт/сервер з комп”ютерами-клієнтами забезпечу-ється через засоби передачі данних і базової операційної системи. Для цього система клієнт/сервер MS SQL Server 7.0 використовує вбудовані компоненти ОС Windows NT.

Серверна СУБД MS SQL Server 7.0 добавляє до мережевих компонент окремі елементи сервіса, такі як OLE-DB відповідає за зв”язок та упровадження об”єктів баз даних і ODBC - відкритий інтерфейс баз даних. Ці компоненти забезпечують тісний зв”язок необхідного програмного забезпечення.

SQL Server 7.0 має багато інструментів, призначених для розробки зовнішнього інтерфейсу бази даних. Окрім мови SQL для зберігання, вибірки данних можна викоритовувати додатки [приложения] з графічним інтерфейсом користувача GUI. Це дуже спрощує розробку баз даних, таблиць і зв”язків між ними. Зручно використовувати SQL Server разом з програмами для роботи в Internet.

Центральним компонентом системи SQL Server є реляційна база даних та її структура. В реляційній базі даних інформація представляється в вигляді рядків та стовбців. Рядки не впорядковані, крім випадку, коли для таблиці створюється кластерний індекс. Сама структура операторів запитів, з допомогою яких проходять виборка даних з рядків таблиці, не залежить від того впорядковані рядки чи ні.

Частина 2 : ШВИДКІСТЬ РОБОТИ SQL SERVER 7.0

В процесі роззвитку SQL Server при розробці клієнтських додатків використовувалось декілька підходів. Ядром системи завжди був процессор обробки запитів, який працював на сервері. Запити писались на мові SQL вводились і опрацьовувались через утіліти типу Query Analyzer.

При написанні програмних додатків для взаємодії з SQL Server частіше за усе використовують :

  1. DB-Library

  2. ODBC і DAO

DB-Library являє собою специфічний для SQL Server інтерфейс прикладних програм . Він є менш зручний ніж ODBC, для переносу програмного додатку в іншу серверну систему але з точки зору працездатності він реалізовує самий швидкий доступ до інформації.

Це забезпечується не тільки тим, що він надає оптимізований інтерфейс API, але використовує в програмах особисту мову системи SQL Server. ODBC (як і SQL-OLE ) надають такий же рівень сервісу але створюють додатковий рівень абстракції між додатком і та процессором запитів SQL Server .

В DB-Lib не підтримується зв”язок таблиць або автоматичного оновлення значень. Це можна розглядати як позитив оскільки гарантується повний контроль над взаємодією програмного додатку з сервером і оптимізацією зв”язків. Додатково програмісту додається повний контроль над виявденням і обробкою помилок, пов”язаних з транзакціями.

2.1 ТЕХНОЛОГІЯ DAO

(Data Access Object – об”єкти доступу до данних) приззначена для викоритання об”єктів, методів, властивотей, значно полегшшують роботу програмного додатку з базою даних. Для обміну інформацією з SQL сервером в об”єктах DAO викоритову-ються рівні дотупу Jet і ODBC, одна вони утворюють ще один рівень абстракції між додатками і викликами функцій ODBC, які використовуються при обробці запитів.

Технологія DAO для роботи з базами даних, таблицями, видами передбачає викоритання коллекцій об”єктів. Наприклад для створення нової таблиці легше викликати метод Add відповідного об”єкта, між використовувати стандартний підхід технології ODBC.

При роботі з базою даних можна використати стандартний підхід для доступу до майже будь-якого сховища даних, що підтриимується засобоми ODBC.

Але треба відмітити, що технологія DAO поступово витісняється більш прогресивною технологією ADO(ActiveX Data Object – об”єкти данх ActiveX ) .

2.2 ТЕХНОЛОГІЯ ODBC

З метою можливого встановлення зв”язку з різними СУБД фірмою Microsoft була розроблена технологія ODBC . Вона забезпечує створення додаткового рівня абстракції між програмним додатком і СУБД. Даний рівень дозволяє створити одну команду Select і використовувати її для виборки даних з будь-яких підтримуємих типів баз даних, враховуючи ті випадки, коли СУБД взагалі не підтримує мову SQL.

Служби ODBC являють собою окремий рівень доступу до файлів баз даних. ODBC бере на себе відповідальністьза отримання від до-датків запитів на вибірку інформації і переведення їх на мову, що використовує ядро база даних, для обробки запиту. Гарним прикладом використання ODBC технології є СУБД Access фірми Microsoft. Головна різниця між ODBC і BD-Lib полягає у тому, що ODBC вимагає побудови і передачі йому лише стандартних SQL команд, а BD-Lib вимагає особливого синтаксису при побудові у буфері команд, що напрравляються безпосередньо у серверне середовище.

Головним недоліком ODBC є необхідність в трансляції запитів. Проведення цієї додаткової роботи відповідно відображається на швидкості доступу до даних. При роботі з ODBC можна отримати суттєвий виграш у швидкості обробки даних, якщо в системі клі-єнт/сервер саме на сервері системи SQL Server буде оброблятись запит, а не на клієнтському комп”ютері. Також приріст у швидкості роботи ODBC дає використання встроєнних процедур.

2.3 JSCRIPT

Тепер перейдемо до процесів, що пов”язані з вимірюванням швидкості системи 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<100000;i++){

oRs.Addnew();

oRs("String").value="User"+i;

oRs("Number").value=i;

oRs("Random").value=Math.round(100*Math.random());

oRs.Update();

if(i%10000==0)

WScript.echo("Now in base present "+i+" records");

}

WScript.echo("Completed");

База даних буде мати вид :

String

Number

Random

User1

1

34

User2

2

12

User3

3

75

. . . .

. . . .

. . . .

У наведеному Script функція Connect відповідає за регістрацію в SQL Server і утворення бази даних DBTest .

DSN – ім”я зв”язку, визначається при утворенні джерела даних ODBC.

UID – ідентифікатор користувача, використовується при регістрації на сервері, у SQL Server ідентифікатор користувача завжди має починатись з “ sа ” .

PWD – або “ password ” кодове слово доступу , необхідний для регістрації на сервері. В даному випадку не використовуємо.

Функція Record проводить запис у всі рядки бази даних DBTest створені значення , у стовбчик Random – створені генератором випадкових чисел значення від 0 до 99 .

Кількість рядків у таблиці буде 10 000, створення займає 3,5 хвилин. Стовбчик Number буде ключем.

Напишемо ще один Script , для тестування швидкості роботи SQL Server . Щоб визначети час відповіді на запит як умога точніше будемо посилати на сервер не один запит , а декілька десятків однакових запитів, обрахувавши середній час відповіді отримаємо точний час обробки запиту і знаходження сервером результуючої множини елементів. Але треба враховувати такий випадок - якщо для підвищення точності послати декілька сотень однакових запитів, то SQL Server почне хешування таблиці для оптимізації своєї роботи

і результати роботи будуть не точні, оскільки при звичайному запиті хешування таблиці не робиться.

// 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();

}

function Test(TestNumber, Query, CountTests){

Max=0;

Min=1000000;

Delta=0;

Ave=0;

WScript.echo("Query #"+TestNumber);

for(i=0;i

StartTime=new Date();

db_Requery(oRs,Query);

EndTime=new Date();

Delta=(EndTime-StartTime);

WScript.echo(" Probe #"+i+" Result="+Delta+" ms");

Ave=(Ave*i+Delta)/(i+1);

}

WScript.echo(" Result="+Ave+" ms");

}

db_Connect();

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Нашёл ошибку?
Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!
Бонус рассчитывается индивидуально в каждом случае и может быть в виде баллов или бесплатной услуги от студизбы.
Предложить исправление
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5136
Авторов
на СтудИзбе
443
Средний доход
с одного платного файла
Обучение Подробнее