Нові можливості SQL Server 2008

Нове для управління


Для адміністраторів баз даних (таких, як я) додаткові функції управління роблять сервер SQL Server 2008 новим відмінним продуктом. Нове управління політиками, можливість декількох запитів сервера, сервери конфігурації і складальник даних / сховище управління надають нові потужні можливості для адміністраторів баз даних, які часто відповідальні за управління великими і складними середовищами баз даних з сотнями або тисячами баз даних на десятках чи навіть сотнях серверів.


Функція керування політиками SQL Server 2008, яка називалася функцією динамічного управління (DMF – Declarative Management Framework) в CTP-версії, дозволяє створювати і виконувати політики конфігурації для одного або декількох серверів баз даних. Ці політики забезпечують застосування параметрів стандартної конфігурації на всіх цільових серверах і базах даних. Приклад цієї функції показаний на рис. 1.

Рис 1Політика рекомендацій з розміщення файлів даних і журналів


Політики створюються на основі зумовленого набору аспектів. Кожен аспект містить підгрупу параметрів конфігурації SQL Server 2008 та інших подій, якими можна управляти. Даним аспектам зіставляються умови для створення політики. Умови – це значення, дозволені для властивостей аспекту, параметрів конфігурації або інших подій, містяться в даному аспекті.


Умовами також є значення, що використовуються для фільтрів політики. Припустимо, політику необхідно застосувати тільки для певної бази даних. У цьому випадку можна створити умову, що містить ім'я бази даних, а потім додати це умова до політики. Після цього політика буде застосовуватися тільки до даної базі даних. Повірте мені, управління політиками SQL Server 2008 може здатися складним, але якщо ви спробуєте його використовувати, то переконаєтеся, що це інтуїтивно зрозумілий процес.


Нові можливості взаємодії декількох серверів і сервери конфігурації зручні при необхідності одночасного виконання запитів до декількох серверів. Можна зареєструвати сервери в середовищі Management Studio, а потім об'єднати їх з допомогою групування. При необхідності виконання політики або запиту для всіх серверів в групуванні її слід просто натиснути правою кнопкою миші і виконати необхідні дії.


Додатковою перевагою є можливість налаштування цієї функції для повернення одного набору результатів для сервера або об'єднання наборів результатів в один великий набір. Також можна вказати, чи будуть імена сервера та баз даних бути частиною результатів, щоб відокремити результати для окремих серверів. Можливість збереження зареєстрованих серверів на сервері конфігурації, а не в окремих Management Studio є великою перевагою.


Інший нової привабливою функцією управління є складальник даних. Адміністраторам баз даних часто необхідний збір даних управління від великого числа серверів, і багато адміністраторів створили власні рішення для виконання цього процесу. Складальник даних – це вбудований механізм, який спрощує завдання збору даних, що відносяться до управління. Він дозволяє використовувати агент SQL Server та служби SQL Server Integration Services (SSIS) для створення платформи для збору та збереження даних, надаючи можливості обробки помилок, аудиту та ведення журналу збору даних.


На відміну від коштів сторонніх розробників і призначених для користувача завдань складальник даних буде достатньо зрозумілий більшості адміністраторів баз даних, оскільки він використовує агент SQL Server Agent та служби SSIS для створення набору завдань і пакетів для обробки підключень, збору та зберігання даних (як показано на рис. 2). Після збереження даних в централізованому сховищі, яке називається сховищем управління, вони можуть бути видимим і систематизуватися за допомогою набору інструкцій T-SQL і звітів служб SQL Server 2008 Reporting Services. Це централізоване сховище даних значно спрощує аналіз і перегляд загальних показників управління середовища бази даних.

Рис 2Файл журналу використання дискового простору збирача даних


Корпорація Майкрософт знову випустила нову версію сервера SQL Server, що обіцяє спростити життя адміністраторів баз даних. Остання версія, SQL Server 2008, містить безліч нових функцій і можливостей, значно поліпшують адміністрування.

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


Нові функції SQL Server 2008 містять великий діапазон ролей завдань бази даних, що ускладнює їх класифікацію. При поділі функцій з різних розділів я зрозумів, що у деяких читачів виникне питання, чому я відніс функцію X до категорії Y, коли вона явно належить до категорії Z. Це питання перспективи, на яку впливає, як саме ваша компанія веде справи.


Я розумію, що фахівці по базах даних часто виконують різні ролі завдань, але я спробую систематизувати нові функції по наступним загальним категоріям: управління, масштабованість, продуктивність, висока доступність, безпека, розробка та бізнес-аналітика.


Нове для масштабованості


За багаторічними спостереженнями адміністраторів баз даних SQL Server розмір їх середовищ баз даних постійно збільшується. Зі збільшенням розміру середовища бази даних потрібні нові способи і засоби для забезпечення масштабованості, необхідної для більшості підприємств. У SQL Server 2008 з'явилося кілька нових функцій, які можуть у цьому допомогти.


SQL Server 2008 має вбудовану функцію стиснення, що дозволяє стискати файли бази даних і журналів транзакцій, пов'язані з відповідною базою даних. У SQL Server 2005 з'явилась можливість стиснення даних файлів або файлових груп, доступних тільки для читання, але ця форма стиснення просто використовує можливість стиснення файлової системи Windows ® NTFS. У SQL Server 2008 з'явилося стиснення на рівні рядків і сторінок, яке надає переваги, недоступні при стисненні на рівні файлів даних.


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


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


Також з'явився регулятор ресурсів. Ця нова функція дозволяє визначати обсяг ресурсів, який може використовуватися окремими робочими навантаженнями або групами робочих навантажень під час виконання. Регулятор ресурсів дозволяє створювати середовище, в якій на одному сервері співіснує безліч різних робочих навантажень без небезпеки того, що одна або кілька цих навантажень викличуть перевантаження сервера або зниження продуктивності інших робочих навантажень.


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


Рис 3 Limit activity with the Resource Governor

USE master
go

–Drop function
IF OBJECT_ID(“rgclassifier_demo”,”Function”) IS NOT NULL
DROP FUNCTION rgclassifier_demo
go

–Create a classifier function for report group
CREATE FUNCTION rgclassifier_demo() RETURNS SYSNAME
WITH SCHEMABINDING
AS
BEGIN
    DECLARE @group_name AS SYSNAME
  IF (USER_NAME() LIKE “%Launch_Demo%”)
         SET @group_name = “demogroup”
    RETURN @group_name
END
GO

–Drop workload group for anything coming from Management Studio
IF EXISTS (SELECT name FROM sys.resource_governor_workload_groups
  WHERE name = “demogroup”)
BEGIN
  DROP WORKLOAD GROUP demogroup
END
GO

–Create workload group
CREATE WORKLOAD GROUP demogroup
GO

–Register the classifier function with
–Resource Governor
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = dbo.rgclassifier_demo)
GO

–Alter the dbogroup workload group to only
–allow 10% of CPU for each workload request
ALTER WORKLOAD GROUP demogroup
WITH (REQUEST_MAX_CPU_TIME_SEC = 10)
GO

– Create a new resource pool and set a maximum CPU limit for all workloads.
IF EXISTS (SELECT name FROM sys.resource_governor_resource_pools
  WHERE name = “pooldemo”)
DROP RESOURCE POOL pooldemo
GO
 
CREATE RESOURCE POOL pooldemo
WITH (MAX_CPU_PERCENT = 40)
GO

–Configure the workload group so it uses the
–new resource pool.
ALTER WORKLOAD GROUP demogroup
USING pooldemo
GO

–Apply the changes to the Resource Governor
–in-memory configuration.
ALTER RESOURCE GOVERNOR RECONFIGURE
GO


Нове для продуктивності


SQL Server 2008 збільшує загальну продуктивність баз даних. Завдяки кільком новим функціям, представленим в SQL Server 2008, з'явилася можливість керування і спостереження за продуктивністю баз даних і додатків, які виконуються на них.


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


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


SQL Server 2008 пропонує кілька нових поліпшень оброблювача запитів для взаємодії запиту з секціонованими таблицями. Тепер оптимізатор запитів може виконувати пошук запитів в секціях так ж, як і в окремих індексах, працюючи тільки з ідентифікатором секції, а не з механізмом секціонування на рівні таблиць.


Нове для високої доступності


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


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


Тепер є можливість відновлення пошкоджених сторінок даних на основному сервері. Якщо в основній базі даних є пошкоджені сторінки даних, зумовлені помилками 823 та 824, основний сервер може запросити поточну копію цих сторінок даних у дзеркальних серверів. Цей запит робочих сторінок даних – автоматизований процес, який прихований це всіх користувачів, що звертаються в цей час до основних баз даних.


Інша нова функція, ЦП з підтримкою гарячої заміни, дозволяє встановлювати на сервері бази даних додаткові ЦП, не впливаючи на доступність баз даних, що знаходяться на цьому сервері. Однак необхідно знати, що ЦП з підтримкою гарячої заміни має деякі обмеження, оскільки корисна тільки для 64-розрядних випусків Windows Server ® 2008 Enterprise Edition і Datacenter Edition для систем з процесорами Itanium і для неї необхідний випуск Enterprise Edition сервера SQL Server 2008.


Нове для безпеки


У SQL Server 2005 з'явилась безпека даних у формі шифрування даних. У SQL Server 2008 шифрування значно покращено завдяки введенню двох нових функцій: розширене управління ключами і прозоре шифрування даних.


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


Прозоре шифрування даних забезпечує більш високу гнучкість шифрування даних, дозволяючи шифруванню бути властивістю бази даних, а не результатом функцій у рядку коду. У результаті адміністраторам не потрібно виконувати безліч необхідних змін структури бази даних і коду додатків при виконанні шифрування на рівні даних. У коді на рис. 4 показаний приклад шифрування бази даних з прозорим шифруванням даних.


Рис 4 Using Transparent Data Encryption

IF OBJECT_ID ( “Demo_SpatialTable”, “Table” ) IS NOT NULL 
    DROP TABLE Demo_SpatialTable
GO

–Create table to hold spatial data
CREATE TABLE Demo_SpatialTable
    ( SpatialID int IDENTITY (1,1),
    SpatialInputCol geography,
    SpatialOutputCol AS SpatialInputCol.STAsText() )
GO

–Insert data into table
INSERT INTO Demo_SpatialTable (SpatialInputCol)
VALUES (geography:: STGeomFromText ("LINESTRING (47.656 -122.360, 47.656 -122.343)", 4326));

INSERT INTO Demo_SpatialTable (SpatialInputCol)
VALUES (geography:: STGeomFromText ("POLYGON ((47.653 -122.358, 47.649 -122.348, 47.658 -122.348, 47.658 -122.358, 47.653 -122.358))", 4326));
GO

– View data to see that data has been converted and stored in col2
SELECT * FROM Demo_SpatialTable


Нове для розробників


Адміністратори баз даних – не єдині, кому безпосередньо вигідні зміни SQL Server 2008. З'явився ряд нових функцій, призначених для розробників баз даних. До них відносяться кілька нових поліпшень T-SQL для нових компонентів, що допомагають розробникам у створенні та використанні запитів баз даних.


Безліч розробників баз даних займається створенням запитів, необхідних для повернення даних, які необхідні їх додатків. Ви, ймовірно, знайомі із засобом LINQ (Language Integrated Query), дозволяє розробникам баз даних виконувати запити до баз даних, використовуючи мову програмування на основі Microsoft ®. NET замість звичайних інструкцій T-SQL. SQL Server 2008 покращує LINQ, надаючи нового постачальника LINQ to SQL, який дозволяє розробникам виконувати команди LINQ безпосередньо для стовпців і таблиць SQL Server. Це зменшує кількість часу, необхідного для створення нових запитів даних.


При розробці для баз даних розробники використовують об'єкти більш високого рівня, зіставляються з окремими стовпцями і таблицями баз даних. Ці об'єкти, також звані сутностями, представляють дані, необхідні додатків баз даних, тому розробнику не потрібно знати справжню структуру зберігання даних і схему бази даних. Нова платформа ADO.NET Entity Framework дозволяє розробникам створювати запити баз даних за допомогою цих сутностей. Абстрагування базової структури бази даних дозволяє збільшити продуктивність розробників.


SQL Server 2008 включає безліч різних поліпшень T-SQL, що дозволяють збільшити продуктивність розробників. Як приклад можна привести нову інструкцію MERGE, яка дозволяє розробникам перевіряти існування даних до їх вставки. Це перевірка, здійснювана до виконання інструкції INSERT, забезпечує можливість оновлення даних. Більше не потрібно створювати складні сполуки для оновлення існуючих і вставки нових даних в одній інструкції.


Крім того, відділення даних дати й часу від змішаного типу даних дати-часу значно спрощено. У SQL Server 2008 представлені два окремих типу даних для обробки даних дати й часу. Різні типи даних приводять до поліпшення продуктивності для безлічі запитів, для використання даних у запиті більше не потрібне попереднє виконання операції з даними.


При створенні нових структур баз даних розробники часто розтягують структури для реалізації додатків зіставлення. SQL Server 2008 допомагає вирішити цю проблему за допомогою нових просторових типів даних. Два просторових типу даних, GEOGRAPHY і GEOMETRY, дозволяють розробникам зберігати дані, пов'язані з розміщення, безпосередньо в базі даних без необхідності розбивки цих елементів даних у формати, що відповідають стандартним типам даних. У коді на рис. 5 показаний приклад простої просторової таблиці.


Рис 5 A simple spatial table

IF OBJECT_ID ( “Demo_SpatialTable”, “Table” ) IS NOT NULL 
    DROP TABLE Demo_SpatialTable
GO

–Create table to hold spatial data
CREATE TABLE Demo_SpatialTable
    ( SpatialID int IDENTITY (1,1),
    SpatialInputCol geography,
    SpatialOutputCol AS SpatialInputCol.STAsText() )
GO

–Insert data into table
INSERT INTO Demo_SpatialTable (SpatialInputCol)
VALUES (geography:: STGeomFromText ("LINESTRING (47.656 -122.360, 47.656 -122.343)", 4326));

INSERT INTO Demo_SpatialTable (SpatialInputCol)
VALUES (geography:: STGeomFromText ("POLYGON ((47.653 -122.358, 47.649 -122.348, 47.658 -122.348, 47.658 -122.358, 47.653 -122.358))", 4326));
GO

– View data to see that data has been converted and stored in col2
SELECT * FROM Demo_SpatialTable


Поширеною проблемою розробників баз даних у минулому було збереження і використання великих двійкових об'єктів, таких як документи і файли мультимедіа. Зазвичай використовувалися способом було збереження файлів поза базою даних, а в базі даних зберігався тільки покажчик на зовнішній файл. Однак при використанні цього способу при переміщенні файлу також необхідно пам'ятати про оновлення покажчика.

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


Як щодо бізнес-аналітики?


Збільшення використання SQL за останні кілька років в значній мірі обумовлено впровадженням стратегій бізнес-аналітики. Можливості бізнес-аналітики існували в SQL Server і раніше, але в SQL Server 2008 включено ряд нових функцій.


Наприклад, при збереженні даних у сховищах даних простір часто витрачається на значення NULL. Стовпці, в яких збережені значення NULL, займають простір найбільшого допустимого розміру даних, визначеного в стовпці. Це означає, що стовпець з тисячами значень NULL може займати багато МБ простору, в дійсності не зберігаючи ніяких даних.


У SQL Server 2008 з'явилися розріджені стовпці, що дозволяють зберігати значення NULL, не займаючи фізичного простору на диску. Оскільки розріджені стовпці не займають фактичного простору, розмір таблиць, що містять розріджені стовпці, може перевищувати обмеження 1024.


У SQL Server 2008 також з'явився новий механізм, відстеження змін у даних, для управління додатковими змінами, які повинні бути завантажені у сховищі даних. Виконується відстеження та розміщення змінених даних у наборі таблиць змін. Відстеження оновлених, видалених і вставлених даних в простий у використанні схемою зберігання дозволяє виконувати додаткову завантаження сховищ даних з цих таблиць – на відміну від необхідності створення користувальницьких інструкцій INSERT, що намагаються визначити зміни існуючих рядків даних, виконані до завантаження сховища даних.


Висновок


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

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*