Нові можливості SQL Server 2008, Інші СУБД, Бази даних, статті

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


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


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

Рис 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>

*

*