Единым взглядом Алексей Шуленин Эксперт по технологиям обработки и анализа информации Департамент стратегических технологий Российское представительство.

Презентация:



Advertisements
Похожие презентации
Кирилл Панов Специалист по технологиям Microsoft Rus Новые возможности безопасности и управления.
Advertisements

Microsoft TechDays Никоноров Евгений разработчик EPAM Systems.
Лекция 27 Лекция 27 Идентификация пользователей. Проверка и назначение полномочий и представлений данных пользователей. Защита базы данных. Контроль параллельной.
Премиум-версии: SQL Server 2008 R2 Parallel Data Warehouse SQL Server 2008 R2 Datacenter Основные версии: SQL Server 2008 R2 Enterprise SQL Server 2008.
БД (администрирование) 1 Базы данных (администрирование) Аблов Игорь Васильевич Кафедра информационных технологий.
Компоненты SQL Server Реляционный сервер –Внутризапросный параллелизм –Распределенные фрагментированные представления (серверные фермы) –Службы тиражирования.
System Center 2012 SP1 Configuration Manager Соответствие параметров Ляшов Евгений
Администрирование информационных систем Администрирование БД. Управление разрешениями.
Администрирование информационных систем Лекция 4. Система управления базами данных.
БАЗЫ ДАННЫХ ЛЕКЦИЯ 12. тема: ОСНОВЫ ЯЗЫКА SQL Общие сведения SQL структурированный язык запросов (Structured Query Language)
Microsoft TechDays Цыганов Федор Softline.
Анализ данных и интеграция информационных систем Станислав Чистяков Старший Консультант 5 апреля 2011 года, гостиница «Золотое кольцо»
СУБД Microsoft Access 2003 Элементы языка SQL. Язык SQL SQL (Structured Query Language) – структурированный язык запросов Язык SQL применяется во многих.
Урок 1. Обзор сервера SQL Server. Обзор Что такое сервер SQL Server Архитектура сервера SQL Server Система безопасности сервера SQL Server Базы данных.
Konstantin Kosinsky Microsoft Innovation Center Architect Microsoft MVP: SQL Blog:
Авторское право © BIT Impulse. Все права защищены. Инструмент для бизнес-анализа Система бизнес-аналитики
Развитие платформы облачных вычислений Microsoft Windows Azure Лекция 6 Windows Azure Storage Сафонов Владимир Олегович Профессор кафедры информатики Заведующий.
PRC303 Службы и приложения Инфраструктура Развёртывание Hyper-V на серверы без ОС Hyper-V, VMware, Citrix XenServer Управление сетевыми устройствами.
Введение в Business Intelligence или как делать репорты красиво и быстро. Александр Иванов
Обеспечение целостности данных Процедурное. Хранимые процедуры Хранимые процедуры пишутся на специальном встроенном языке программирования, они могут.
Транксрипт:

единым взглядом Алексей Шуленин Эксперт по технологиям обработки и анализа информации Департамент стратегических технологий Российское представительство Microsoft Microsoft Corporation

Новые возможности SQL Server 2008 Transparent Data Encryption External Key Management Data Auditing Pluggable CPU Transparent Failover for Database Mirroring Declarative Management Framework Server Group Management Streamlined Installation Enterprise System Management Performance Data Collection System Analysis Data Compression Visual Entity Designer Entity Aware Adapters Data Profiling Star Join Transparent Data Encryption External Key Management Data Auditing Pluggable CPU Transparent Failover for Database Mirroring Declarative Management Framework Server Group Management Streamlined Installation Enterprise System Management Performance Data Collection System Analysis Data Compression Visual Entity Designer Entity Aware Adapters Data Profiling Star Join SQL Server Change Tracking Sync Framework Visual Studio Support SQL Server Conflict Detection FILESTREAM data type Integrated Full Text Search Sparse Columns Large User Defined Types Date/Time Data Type Geospatial data type Virtual Earth Integration Partitioned Table Parallelism Query Optimizations Persistent Lookups Change Data Capture Backup Compression MERGE SQL Statement Enterprise Reporting Engine Internet Report Deployment Block Computations Scale out Analysis BI Platform Management Export to Word and Excel Report Builder Enhancements TABLIX Rich Formatted Data Personalized Perspectives Query Optimization Modes Resource Governor Entity Data Model LINQ … и много, что еще

Краткий курс истории SQL Server Производительность Функциональность Надежность

План презентации НадежностьНадежность –SQL Server 2008 обеспечивает организациям запуск критических для бизнеса приложений на необходимом уровне безопасности, устойчивости и масштабируемости ПроизводительностьПроизводительность –SQL Server 2008 позволяет снизить время и издержки на разработку и управление инфраструктурой данных ЭффективностьЭффективность –SQL Server 2008 предоставляет комплексную платформу для повсеместного доступа к данным и превращения их в информацию и принятия управленческих решений

Надежность Защита данных –Прозрачное шифрование базы –Внешнее управление ключами –Улучшенные возможности аудита Непрерывность бизнес-процессов –Новые возможности зеркалирования Автоматическое восстановление сбойной страницы с партнера Возросшая производительность за счет сжатия потока лога Улучшенная поддержка зеркалирования –Новые счетчики производительности позволяют получить более детальную информацию о стадиях процесса –Новые DMV –Горячее добавление процессоров Оптимизированная и предсказуемая производительность системы –Resource Governor –Заморозка планов –Сжатие данных и резервных копий –Сбор данных о производительности –Расширенные события – см. CREATE EVENT SESSION Легковесный механизм для сбора информации о внутренних процессах SQL Server в дополнение к DMV и профайлеру

Transparent Data Encryption (TDE) Шифрование/дешифрование на уровне базы данныхШифрование/дешифрование на уровне базы данных DEK зашифрован:DEK зашифрован: –Мастер-ключом сервиса (Service Master Key) –Для хранения ключей можно задействовать аппаратные модули безопасности (HSM) DEK должен быть дешифрован приDEK должен быть дешифрован при –Присоединении файлов БД –Восстановлении резервной копии SQL Server 2008 DEK Приложение Зашифрованная страница страница

Подробную демонстрацию на прозрачное шифрование данных можно посмотреть здесь: ?f=6&t=1106

Внешнее управление ключами Extensible Key Management (EKM) Хранение ключа, управление и шифрование производится HSM Реализуется через SQL EKM Provider DLL SQL EKM Provider DLL SQL EKM Key (HSM key proxy) Data SQL Server

Сценарии использования Потеря или кража жесткого диска хранения БД Неавторизованый доступ к файлам БД Неавторизованный доступ к резервным копиям Без ключа или HSM базу данных не открыть

Компрессия данных в SQL Server 2008 Только Enterprise Edition Типы компрессии –ROW Хранит значения фиксированной длины как переменной Расширение формата хранения vardecimal Не относится к BLOBам –PAGE (включая ROW) Префиксы полей Словарь Из BOLBов только внутризаписьные (in-row) могут потенциально выиграть Не требуется переделки приложения Поддерживается всеми датабазными тулами (DBCC, BACKUP, INDEX,...) Выигрыш в случае основной нагрузки на I/O

Префиксы Выделить общий префикс вдоль колонки через все записи на странице Сохранить эти префиксы в заголовке и ссылаться на них из соответствующих ячеек Пример: Student (Name VARCHAR (10), ID INT, CODEVARBINARY(3))

Префиксы 0x5B8D800x5B8D80 0x41AABB0x41AABB 0x9A40410x9A4041 0x x x5CAABB0x5CAABB 44 20x41 20x43 20x =0x4C4840

Словарь Выделить повторяющиеся значения через все записи и колонки на странице Сохранить их в заголовке и ссылаться на них из соответствующих ячеек

Словарь 0x5B8D800x5B8D80 0x41AABB0x41AABB 0x9A40410x9A4041 0x x x5CAABB0x5CAABB Префикс Словарь =0x5B8D80

Эффект от компрессии Customer: Dynamics AX Достигнут коэффициент сжатия –> 90% для страничной компрессии Время отклика –Улучшено на 3% Счетчики –Physical Disk Reads/Sec упал с 294/sec до 3/sec –Physical Disk Writes/Sec упал на 23% –CPU utilization выросла с 56.2% до 64.7%

В сравнении с другими производителями SQL Server 2008 ЕЕ против Oracle 11g EE Одинаковая аппаратная платформа: х64, 8 процов Хранилище 600GB И там, и там постраничная компрессия Цель – померить производительность out-of- box (мелкий тюнинг, абсолютно никаких хинтов в запросах) Нагрузка: 60 запросов, ориентированных на ввод/вывод

В сравнении с другими производителями Коэффициент компрессии лучше в SQL Server 2008 –147GB (SQL) против 163GB (Oracle), ~10% SQL Server на 13% быстрее Oracle сделал сжатие Выигрыш во временах выполнения запросов после компресии –Oracle -> 20% –SQL Server -> 36%

В сравнении с другими производителями ROW компрессия в Oracle делает out of the box dataset меньше –Она там включена по умолчанию Сырая (несжатая) производительность I/O в Oracle лучше (25%) В SQL Server 2008 более высокая цена за сжатие в виде возрастания нагрузки на CPU penalty –22% (SQL Server) против 16% (Oracle) Не производилось дополнительной настройки –В случае оптимальной настройки Oracle мог выиграть

Подробную демонстрацию на сжатие по партициям можно посмотреть здесь: ?f=6&t=1064 Демонстрацию на сжатие резервных копий можно посмотреть здесь: ?f=6&t=1107

Мониторинг и диагностика Performance Studio в составе SQL Server 2008 –Интегрированная с SSMS среда получения отчетов по производительности SQL Server –Еще в 2005-м в SSMS были интегрированы отчеты Reporting Services по DMV, дающие основные показатели по расходу диска, памяти, нагрузке процессоров с точки зрения объектов SQL Server и выполнения запросов –Эти возможности были усилены с выпуском SQL Server 2005 Performance Dashboard, которая уже вела свою базу, куда аккумулировала собранную статистику –SQL Performance Studio является следующим этапом развития на этом пути

Демонстрацию применения SQL Server Performance Studio можно посмотреть здесь: ?f=6&t=1072

Основные вопросы аудита сервера БД Кто залез в/изменил данные или схему? Когда? Из какого приложения? Из какого места в сети? Каков был при этом SQLный запрос? Был ли он успешный? –Если да, какие результаты были возвращены на клиента?

Аудит средствами SQL Server 2005 или 2008 не EE SQL Trace / Profiler Триггеры на DDL / DML Самописное приложение, читающее журнал Транзакционная репликация как ср-во аудита? 3 rd Party –Log Analyzers –Network Gateways

Критерии выбора ср-ва аудита Писать Накладные расходы – Runtime Impact – Admin & Maintenance Стоимость – Разработки – Поддержки Интероперабельность с другими ср-вами Функциональность – Журналирование – Анализ и отчетность – Реальное время (Alerting) – Разделение зон ответственности Покупать Накладные расходы – Runtime Impact – Admin & Maintenance Стоимость – Приобретения – Продления лицензий – Договора на поддержку – Консалтинг при внедрении Поддержка от разных производителей Интероперабельность с другими ср-вами Функциональность

Аудит в SQL Server 2008 Теперь аудит является встроенным серверным объектомТеперь аудит является встроенным серверным объектом –DDL для конфигурирования, управления, безопасности Автоматическая запись в файл, Windows Application Log, Windows Security LogАвтоматическая запись в файл, Windows Application Log, Windows Security Log Возможность определять гранулярные Audit Actions на уровне пользователей/ролей и объектов БДВозможность определять гранулярные Audit Actions на уровне пользователей/ролей и объектов БД Использует новую высокопроизводительную инфраструктуру событий для генерации аудитаИспользует новую высокопроизводительную инфраструктуру событий для генерации аудита Работает внутри движка, а не как стороннее out-of- process приложениеРаботает внутри движка, а не как стороннее out-of- process приложение Быстрее SQL TraceБыстрее SQL Trace Записывает изменения в собственную конфигурацию аудитаЗаписывает изменения в собственную конфигурацию аудита Только Enterprise EditionТолько Enterprise Edition

Спецификации аудита Audit Security Event Log Application Event Log File system 0..1 Server audit specification per Audit object 0..1 DB audit specification per database per Audit object CREATE SERVER AUDIT SPECIFICATION SvrAC TO SERVER AUDIT PCI_Audit ADD (FAILED_LOGIN_GROUP); CREATE SERVER AUDIT SPECIFICATION SvrAC TO SERVER AUDIT PCI_Audit ADD (FAILED_LOGIN_GROUP); CREATE DATABASE AUDIT SPECIFICATION AuditAC TO SERVER AUDIT PCI_Audit ADD (SELECT ON Customers BY public) CREATE DATABASE AUDIT SPECIFICATION AuditAC TO SERVER AUDIT PCI_Audit ADD (SELECT ON Customers BY public) Server Audit Specification Server Audit Action Database Audit Components Database Audit Specification Database Audit Action File

Спецификации аудита Спецификации уровня сервера и БД на –Предопределенные группы действий –Фильтры на индивидуальные действия Группы действий уровня сервера –Изменения серверной конфигурации, login/logoff, изменения членства в ролях и т.д. Группы действий уровня БД –Доступ к объектам схемы, изменение членства в ролях БД, доступ к объектам базы, изменения конфигурации БД,... Чтение лог-файла – select * from sys.server_file_audits nvarchar(1000) = log_file_path from sys.server_file_audits where name = 'Test_SQL_Server_Audit' select * from + '*', default, default)

Демонстрацию возможностей аудита можно посмотреть здесь: ?f=6&t=1075 Расширенные события и интеграция с ETW – здесь: ?f=6&t=1073

Производительность Основанное на политиках управление –Автоматическое централизованное администрирование Удобный процесс разработки –ADO.NET Entity Framework Моделирование на уровне бизнес-сущностей –Материализация данных в виде объектов CLR с помощью ADO.NET Object Services –LINQ –Service Broker Приоритет беседы Диагностический инструмент – Transact-SQL Табличные параметры Раздельные типы DATE/TIME/DATETIME2 Новые DMV для отслеживания зависимостей между объектами Периодически отсоединенные системы – ADO.NET Sync Svc Нереляционные типы – HierarchyID – Geometry, Geography – Filestream – Интегрированный в движок полнотекст – Разреженные колонки – Большие (>8000 байт) пользовательские типы

Хранение неструктурированного контента Remote Blob Storage FILESTREAM BLOB Storage SQL BLOB Выделенное хранилище для BLOBов DB ПриложениеПриложение Blob Хранить BLOBы в базе DB ПриложениеПриложение BLOB Хранить BLOBы в базе + в файловой системе ПриложениеПриложение BLOB DB

Remote BLOB Storage (RBS) Хранение BLOBов на внешнем по отношению к SQL Server устройстве в той же сети В отличие от обычного сценария SQL Server поддерживает целостность между записями в БД и внешним хранилищем RBS, прибирает мусор Включает клиентскую библиотеку RBS API, хранимые процедуры rbs_sp_* для поддержки целостности –Создается табличка для BLOB ID Доступно как add-on к SQL Server 2008 в составе Feature Pack – E9EF-BA29-4A43-8D69-A2BED18FE73C&displaylang=enhttp:// E9EF-BA29-4A43-8D69-A2BED18FE73C&displaylang=en ISV и поставщики устройств хранения могут создавать собственных провайдеров RBS для поддержки их устройств через RBS API

ПриложениеПриложение RBS Client Library BLOB Store Provider Library BLOB Store SQL Server ClaimIDClaimDatePhotoRef 43906/5/ Записать BLOB(Photo) Вернуть Blob ID Записать Blob ID в поле PhotoRef 2 3 Граница машины

Application Machine SQL Server Blob Store Конечный пользователь Напр., IE Конечный пользователь Напр., IE Application Client Library Store Library Запрос пользователя Прочесть BlobId Прочесть Blob Получить Blob Прочесть Blob (blobId) Чтение BLOBa средствами RBS Пользователь читает содержимое Blobа Приложение получает Blob Id Приложение получает Blob

// Создать новый blob. // byte[] myBlobId; SqlRemoteBlobContext blobContext = new SqlRemoteBlobContext(sqlConn); using (SqlRemoteBlob newBlob = blobContext.CreateNewBlob()) { // Записать в System.IO.Stream object. // newBlob.Write(…); newBlob.Close(); myBlobId = newBlob.BlobId; }

// В служебную таблицу добавить новую запись со свежим blob ID. // // Прочитать blob. // using (SqlRemoteBlob existingBlob = blobContext.OpenBlob(myBlobId)) { existingBlob.Read(...); } // Альтернативные способы чтения/записи: // newBlob.WriteFromStream(inputStream); existingBlob.ReadToStream(outputStream);

Что такое FILESTREAM varbinary(max), хранящийся не в БД, а в файловой системе –Нет ограничения в 2 ГБ, только размером тома –Стримовый доступ (за счет станд.интерфейсов Win32) –SQLный буферный пул не исп-ся, NT system cache –Доступ к файл.сист. на удаленной машине – SMB –Файл-группа базы должна иметь атрибут FILESTREAM –Вместо файлов БД содержит каталоги файл.сист. (контейнеры) –Контейнеры не могут быть влож. –Учет.запись SQL Server должна иметь NTFS-права на доступ к контейнерам, раздача прав внутри SQL Server – обычным образом Интеграция Катмаевского движка с NTFS позволяет делать по ним вставку, обновление, запросы, поиск, backup стандартными SQLными операторами –При кластеризации – на общем диске

create database TestFS on primary (name = TestFS_data, filename = 'c:\Demo\TestFS_data.mdf'), filegroup FG1 contains filestream (name = TestFS_media, filename = 'c:\Demo\TestFS_media') log on (name = TestFS_log, filename = 'c:\Demo\TestFS_log.ldf')} insert Media(stream) values (cast(N'aaa' as varbinary(max))) insert Media(stream) values (cast(N'bbb' as varbinary(max))) insert Media(stream) values (cast(N'ccc' as varbinary(max))) update Media set stream = cast(N'ффф' as varbinary(max)) where id = 1 //Вся строковая функциональность работает select left(cast(stream as nvarchar(max)), 1) from Media //За исключением частичного обновления update Media set stream.Write(cast('ффф' as varbinary(max)), 0, 3) where id = 1 Msg 5538, Level 16, State 1, Line 1 Partial updates are not supported on columns that have a FILESTREAM as a source.

/// Пример чтения содержимого поля FileStream. Используется чтение в память, хотя при желании стрим в памяти можно заменить на стрим в файл или еще куда- нибудь. /// static void GetFileStream() { SqlTransaction tx = cnn.BeginTransaction(); //Требуется открыть транзакцию, иначе GET_FILESTREAM_TRANSACTION_CONTEXT() возвращает NULL. SqlCommand cmd = new SqlCommand(); cmd.Connection = cnn; cmd.Transaction = tx; cmd.CommandText = "select stream.PathName() from Media where id = 2"; string filePath = (string)cmd.ExecuteScalar(); //SqlString.Value cmd.CommandText = "select GET_FILESTREAM_TRANSACTION_CONTEXT()"; byte[] txCtx = (byte[])cmd.ExecuteScalar(); //SqlBinary.Value SqlFileStream sfs = new SqlFileStream(filePath, txCtx, FileAccess.Read); MemoryStream ms = new MemoryStream(); CopyBytesUpToEndBetweenStreams(sfs, 0, ms, 0, 100); //Самописная процедура, которая делает то, что отражено в ее названии Debug.WriteLine(Encoding.Unicode.GetString(ms.GetBuffer())); ms.Close(); sfs.Close(); tx.Commit(); }

Дальнейшее развитие Поддержка множественных контейнеров на файл-группу FILESTREAMПоддержка RCSI, сжатия и TDE для FILESTREAMРасширить DB Mirroring на FILESTREAMВключить миграцию BLOBов в утилиты SQL ServerИнтеграция FILESTREAM с RBSПоддержка горизонтального масштабирования для FILESTREAMПолнотекстовый поиск для RBS

Подробную демонстрацию на применение FILESTREAM можно посмотреть здесь: ?f=6&t=1317

Геопространственные расширения SQL Server Типы Geometry (плоская геометрия) и Geography (эллипсоидальная) –Объекты Geography должны быть меньше полушария Построены в соответствии со стандартами Open Geospatial Consortium (OGC), ч.I, II

Геопространственные индексы create spatial index Idx on TestGeospatial(g) with (bounding_box = (0, 0, 20, 10), grids = (LEVEL_4 = HIGH, LEVEL_3 = MEDIUM), CELLS_PER_OBJECT = 8192)

Интеграция c другими продуктами Microsoft Virtual Earth – –Что не удивительно, потому что Microsoft ESRI ArcGIS 9.3 – mlhttp:// ml –Что не удивительно, т.к. геопространственные расширения в SQL Server результат совместной работы Autodesk Feature Data Object (FDO) Provider –Управляет местоположением и дизайном в AutoCAD Map 3D, Autodesk MapGuide и Autodesk Topobase на основе SQL Server 2008 – 6%3C%2Ftd%3Ehttp://pressreleases.autodesk.com/index.php?s=press_releases&item=39 6%3C%2Ftd%3E Полный список -

Подробную демонстрацию на применение геопространственных данных можно посмотреть здесь: ?f=9&t= ?f=6&t=1312

Подробнее... См. доклад DB 303 –Никита Шамгунов, «SQL Server 2008: полный контроль над информацией» –5 декабря, 11:00, Зеленый зал

Удобные средства разработки SQL Server 2008 поддерживает ADO.NET Entity Framework и запросы средствами LINQ –LINQ2SQL – провайдер к SQL Server Писать так несколько более удобно, чем так

using System.Linq; using System.Data.Linq; //Добавить reference using System.Data.Linq.Mapping; public class Class1 { [Microsoft.SqlServer.Server.SqlProcedure] public static void LinqInnerJoins() { SqlConnection cn = new SqlConnection("context connection=true"); DataContext dc = new DataContext(cn); cn.Open();... SqlContext.Pipe.Send("\nДжойн"); var q3 = from клиент in клиенты join заказ in заказы on клиент.ID equals заказ.Клиент select new { клиент, заказ }; foreach (var r in q3) SqlContext.Pipe.Send(String.Format("{0} {1} {2} {3} {4}", r.клиент.ID, r.клиент.Имя, r.заказ.ID, r.заказ.Название, r.заказ.Количество)); cn.Close(); }

Демонстрацию на использование LINQ на стороне SQL Server можно посмотреть здесь: ?f=6&t=1368

См. также Доклад DT 405 –Иван Бодягин, Андрей Корявченко –«Функциональное программиро- вание и параллельные вычисления – новые возможности для разработчиков в.NET: Task Parallel Library и PLINQ» –5 декабря, 9:30, Красный зал

Основанное на политиках управление КатегорииКатегории ОбъектыОбъекты ФасетыФасетыУсловияУсловияПолитикиПолитики

Условия политик Check Condition – условие, задающее цель политики Against Targets – набор целевых объектов, против которых будет проверяться check condition – Type Skeleton – иерархическая последовательность типов, используемых системной моделью БД в SMO – Target Set – Условия применительно к type skeleton, отфильтровывающие подмножество объектов Server Restriction – корневое условие, ограничивающее сервера, для которых дейсвует данная политика; условие для Server facet Условие – логический оператор, определяющий логическую конфигурацию объекта

Ручная проверка администратором По требованию Задание SQL Server Agent проверяет по расписанию и пишет в журнал о несоответствиях По расписанию, в журнал записывается о несоответствиях политикам DDL триггера откатывают не соответствующие изменения При попытке изменений предотвращает не соответствующие изменения Информация о несоответствующих изменениях пишется в журнал При попытке изменений в журнал записывается о несоответствиях политикам Мониторинг выполнения условиям политик

Объектная модель.Net PolicyStore Policies Conditions ObjectSets PolicyCollectionConditionCollectionObjectSetCollection Policy Condition RootCondition ObjectSet ConditionObjectSet TargetSets TargetSetCollection TargetSet Levels TargetSetLevelCollection TargetSetLevel Microsoft.SqlServer. Dmf.dll

SQL Server Database Engine Режим On Changes Policy Event Handler msdbmsdb sp_syspolicy_dispatch_event resourcedbresourcedb Policy Engine SMOSMO sys.sp_execute_policy DmfSqlClrWrapper.dllDmfSqlClrWrapper.dll PolicyEvaluationWrapper. EvaluateAutomatedPolicy PolicyEvaluationHelper. EvaluateAutomatedPolicy(…) PolicyEvaluationHelper. EvaluateAutomatedPolicy(…) syspolicy_execution_internal sp_syspolicy_execute_policy syspolicy_execution_trigger (INSTEAD OF INSERT) syspolicy_execution_trigger (INSTEAD OF INSERT) Policy.Evaluate(…) Service Broker syspolicy_event_notification syspolicy_event_listener (Service) syspolicy_event_listener (Service) syspolicy_event_queue Blocking Trace Events Non- Blocking Database Engine Events DDL Event Trigger syspolicy_server_trigger

Демонстрацию на использование Policy- Based Management можно посмотреть здесь: ?f=6&t=1070

См. также Доклад DB 304 –Григорий Погульский. «SQL Server Основанное на политиках управление. Внутреннее устройство» –5 декабря, 13:00, Зеленый зал

Централизованное выполнение запросов

Эффективность Хранилища данных –Компрессия –Параллелизм при сканировании партиций –Оптимизация звездных связей –GROUPING SETS Возможность группировки по разным условиям в одном запросе –Оператор MERGE –Change Tracking и Change Data Capture Аналитические службы –Best Practice Design Alerts –Построитель связей –Блочные вычисления –Обратная запись MOLAP Службы отчетности – Переработанный механизм – Новые возможности Report Designer Tablix – Report Builder Отдельное приложение для интерактивного построения отчетов в Office-подобном интерфейсе – Мощные средства визуализации (новые графики и шкалы) – Добавлен рендеринг в формат MS Word

Оператор MERGE Сценарий OLTP: Слияние недавней информации из внешнего источника OLAP: Инкрементное пополнение Исходная таблица (Торги) Целевая таблица (Stock Holding) Результат (Stock Holding) INSERT UPDATE

Оператор MERGE Сочетает внутри себя несколько операций DML Действует на основе джойна между источником и назначением Совместим со стандартом SQL-2006 UPDATE TGT SET TGT.quantity += SRC.quantity, TGT.LastTradeDate = SRC.TradeDate FROM dbo.StockHolding AS TGT JOIN dbo.StockTrading AS SRC ON TGT.stock = SRC.stock; INSERT INTO dbo.StockHolding (stock, lasttradedate, quantity) SELECT stock, tradedate, quantity FROM dbo.StockTrading AS SRC WHERE NOT EXISTS (SELECT * FROM dbo.StockHolding AS TGT WHERE TGT.stock = SRC.stock); MERGE INTO dbo.StockHolding AS TGT USING dbo.StockTrading AS SRC ON TGT.stock = SRC.stock WHEN MATCHED AND (t.quantity + s.quantity = 0) THEN DELETE WHEN MATCHED THEN UPDATE SET t.LastTradeDate = s.TradeDate, t.quantity += s.quantity WHEN NOT MATCHED THEN INSERT VALUES (s.Stock,s.TradeDate,s.Quantity) РанееSQL 2008

Демонстрацию на оператор MERGE можно посмотреть здесь: ?f=6&t=1067

Наборы группирования Определяет множественные условия группировки в одном запросе Производит единый набор записей, эквивалентный UNION ALL по-разному сгруппированных результатов Совместим с SQL 2006 SELECT customerType,Null as TerritoryID,MAX(ModifiedDate) FROM Sales.Customer GROUP BY customerType UNION ALL SELECT Null as customerType,TerritoryID,MAX(Modifie dDate) FROM Sales.Customer GROUP BY TerritoryID order by TerritoryID SELECT customerType,TerritoryID,MAX(ModifiedDa te) FROM Sales.Customer GROUP BY GROUPING SETS ((customerType), (TerritoryID)) order by customerType Ранее SQL 2008

Табличные параметры Входные параметры табличных типов для хранимых процедур / функций Ведут себя подобно BCP, оптимизированы для лучшей масштабируемости на больших объемах Не вызывают перекомпиляции Строгая типизация, простая программная модель CREATE TYPE myTableType AS TABLE (id INT, name NVARCHAR(100),qty INT); CREATE PROCEDURE myProc myTableType READONLY) AS UPDATE Inventory SET qty += s.qty FROM Inventory AS i INNER AS tvp ON i.id = tvp.id GO Поддержка в ADO.NET 3.x –Новый тип параметра SqlDbType.Structured –Может передаваться как DataTable, IЕnumerable (стриминг), DbDataReader и OLEDB / ODBC –SQL_SS_Table

Типы Date и Time CREATE TABLE Employee { FirstName VARCHAR(10), LastName VARCHAR(10), Birthday DATE, … } SELECT Birthday AS BirthDay FROM Employee INSERT INTO T (datetime_col) VALUES ( ) INSERT INTO T (datetime_col) VALUES (12:30: ) CREATE TABLE online-purchase-order { item-id int, item-name VARCHAR(30), qty int, purchase-time datetimeoffset, … } // For value :20: :00 INSERT INTO online-purchase-order VALUES (…., :20: :00,..) Больше диапазон лет (1-9999) Экономия места DATE Лучше точность (до 100 нс) TIME Преимущества DATE и TIME вместе DATETIME2 DATETIME2 с поддержкой часового пояса DATETIME OFFSET

Другие новшества Т-SQL UPDATE Inventory SET quantity += s.quantity FROM Inventory AS i INNER JOIN Sales AS s ON i.id = s.id UPDATE Inventory SET quantity += s.quantity FROM Inventory AS i INNER JOIN Sales AS s ON i.id = s.id int = 5; varchar(10) = xxxxx; int = 5; varchar(10) = xxxxx; SELECT * FROM (VALUES (1, 'cust 1', '(111) ', 'address 1'), (2, 'cust 2', '(222) ', 'address 2'), (3, 'cust 3', '(333) ', 'address 3'), (4, 'cust 4', '(444) ', 'address 4'), (5, 'cust 5', '(555) ', 'address 5') ) AS C(custid, companyname, phone, address); SELECT * FROM (VALUES (1, 'cust 1', '(111) ', 'address 1'), (2, 'cust 2', '(222) ', 'address 2'), (3, 'cust 3', '(333) ', 'address 3'), (4, 'cust 4', '(444) ', 'address 4'), (5, 'cust 5', '(555) ', 'address 5') ) AS C(custid, companyname, phone, address);

Синхронизация и аудит Несмотря на то, что эти сценарии довольно схожи –И тот, и другой нуждаются в отслеживании изменений не стоит их смешивать –Все-таки решаемые ими задачи отличаются следовательно, инструменты тоже Сейчас не рассматриваем ::fn_trace_gettable(), event notification,... Вопрос: основное отличие в отслеживании изменений между синхронизацией и аудитом?

История изменений в данных Исторические данные потребляются по временнЫм срезам Все изменения, произошедшие до 8:00 Все изменения, произошедшие с 8:00 до 11:00 DML Пользовательские таблицы Изменение метаданных Приложение синхронизации Сниок итоговых изменений на 8:00 DML Пользователь ские таблицы Хочу изменения пользовательских таблиц с 8:00 Сценарии использования Change Data Capture Change Tracking

Отслеживание изменений Change TrackingChange Data Capture (CDC) ScopeDMLDML / Certain DDL Change DataNet-changes (row changed) Primary key values only All changes All column values Change InfoDML Operation, Columns Updated, App Data DML Operation, Columns Updated, Transaction info Change Availability Immediate - inline with DML Enables conflict detection Later - separate capture process reads the transaction log StorageLowHigh DML ImpactLowLow / None Query Performance Join requiredData in one table Query Results Consistency Snapshot isolation recommendedNot an issue – have all the data Store App Data?YesNo EditionsAll editionsEnterprise edition only Key ScenariosSync Applications: one-way or two- way Incremental ETL for data warehouse

Демонстрацию на Change Data Capture можно посмотреть здесь: ?f=6&t=944 Демонстрацию на Change Tracking можно посмотреть здесь: ?f=6&t=1068

DMV Shared Database New server infrastructure Auditable and traceable process Block Computation cube synchronization across multiple instances Attribute Relationship Designer Improved Query response time client-side capabilities Failover Clustering AMO Dimension Editor Best Practices Warnings Predictable time to complete backup Personalization extension Scalable Backup Integrated Management with SQL Server Fine grain administration roles Improvements at Configuration tool Kpi New Method Resource Monitoring Aggregation Wizard Optimization Techniques MDX Enhancements Improves query response Что нового в Analysis Services 2008 New dialogs error configuration settings Redesigned interface New Aggregation Design

Attribute Relationship Designer

Best Practice Design Alerts Визарды –Cube Wizard Поддерживает создание куба из одной таблицы Проще –Dimension Wizard Автоматически создает атрибуты Можно присваивать тип атрибуту Добавлена классификация свойств членов

Aggregation Designer Просмотр дизайнов агрегатов для каждой партиции Возможность запуска Aggregation Design Wizard или Usage-Based Optimization Wizard (также доступны в SSMS) Назначение существующего дизайна агрегатов любой партиции в пределах данной группы мер Добавление, изменение, удаление дизайнов агрегатов и отдельных агрегатов

Расширения синтаксиса MDX CREATE KPI – CREATE KPI CURRENTCUBE | Cube_Name.KPI_Name AS KPI_Value [, FORMAT_STRING=string, VISIBLE=value, NON_EMPTY_BEHAVIOR=, CAPTION=string, DISPLAY_FOLDER=string, ASSOCIATED_MEASURE_GROUP= ] UPDATE MEMBER – UPDATE MEMBER Cube_Name.Member_Name as mdx_expression [, Property_Name = Property_Value,…n] CREATE MEMBER – CREATE [ SESSION ] [HIDDDEN] [ CALCULATED ] MEMBER CURRENTCUBE | Cube_Name.Member_Name AS MDX_Expression [,Property_Name = Property_Value,...n] [, CAPTION=string, DISPLAY_FOLDER=string, ASSOCIATED_MEASURE_GROUP= ]......[,SCOPE_ISOLATION = CUBE] CREATE SET – CREATE [SESSION] [STATIC | DYNAMIC][HIDDEN] SET CURRENTCUBE | Cube_Name.Set_Name AS 'Set_Expression' [, CAPTION=string, DISPLAY_FOLDER=string]

Блочные вычисления Measures.[Sales Amount] Measures.[Product Contribution] (Measures.[Sales Amount], Product.[Product Categories].Parent Step 1: Get non-null values from the Storage Engine Step 2: Calculate the expression Step 3: Add null values into the query results Итого 3 вычисления вместо 24

См. также Доклад BI 202 –Иван Косяков. «Обзор SQL Server Analysis Services 2008» –5 декабря, 14:30, Зеленый зал Доклад BI 303 –Валерий Ким. «Бизнес-аналитика и моделирование в SQL Server 2010 Analysis Services» –5 декабря, 16:00, Зеленый зал

Новое в SSIS 2008 Новые типы –DT_DBTIME2, DT_DBTIMESTAMP2, DT_DBTIMESTAMPOFFSET VSTA для скриптов –Поддержка C# Data Profiling Task ADO NET Source и Destination Улучшенные производительность и кэширование для преобразований LookUp Поддержка пакетов DTS 2000

Демонстрацию на Data Profiling Task можно посмотреть здесь: ?f=36&t=1058

Новое в SSRS 2008 Архитектура –Больше не нужен IIS. Берет HTTP.SYS от ОС и ASP.NET из встроенного CLR –Собственная поддержка резервирования URL-адресов и регистрации конечных точек сервера отчетов –Консолидированы в единую службу Веб-служба сервера отчетов (для интерактивной обработки отчетов) Диспетчер отчетов (обслуживает запросы от клиентов) Обработчик планирования и доставки (фоновое приложение для обработки заданий по расписанию) –Своя служба аутентификации Коль скоро отказались от IIS –Свой лог с регистрацией обрабатываемых HTTP-запросов Аналогично –Настройка использования памяти В пред.версиях RS использовал всю доступную память Теперь можно настроить не только макс.ограничение используемой памяти, но и промежуточные пороговые значения

Новое в SSRS 2008 Разработка –Табликс Разнородные срезы рядом (по времени и по географии) Независимые агрегаты для каждой группы –Чарты и шкалы от Дундаса –Report Builder 2.0 –Экспорт в Word –Возможность постраничного рендеринга по мере просмотра

См. также Доклад BI 105 –Алексей Еременко. «Управление отчетностью: SQL Server Reporting Services, Microsoft Dynamics, Microsoft Office Excel 2007» –5 декабря, 17:30, Зеленый зал

Представлена 27 октября на PDC 2008 –Платформа для удаленного создания и управления веб-приложениями –Соединение имеющихся компьютерных мощностей в виртуальное вычислительное облако –Изначальная поддержка.NET, стандартов XML,SOAP, REST, открытость, интеграция со сторонними средствами Eclipse, Ruby, PHP, Python...

Microsoft CloudDB SQL Server P P S S S S S S Replicatio n Agent Local Partition Map Data Node 100 Master Node (Primary Master) Primary Secondary Fabric Ring Topology Failure Detector PM Location Resolution Reconfiguration Agent Fabric Leader Elector Partition Manager Partition Placement Advisor SQL Server Global Partitio n Map Fabric Data Node 103 P P S S S S S S P P Data Node 104 P P S S S S P P S S Data Node 102 P P S S S S P P S S Data Node 105 P P S S S S S S S S Data Node 101 P S S S S P P S S Load Balancer Partition Management

Понятие АСЕ AuthorityContainerEntity A uthority –Единица географического местоположения и биллинга –Аналог пространства имен –Представляется DNS-именем типа mydomain.data.beta.mssds.com, где mydomain – authority, а data.beta.mssds.com – сервис –Можно заводить несколько –Коллекция контейнеров C ontainer –Коллекция сущностей –Запросы, перечисление, поиск сущностей –CRUD сущностей E ntity –Набор name/value пар –Единица изменения –Базовые скалярные XSD-типы string, base64Binary, boolean, decimal, dateTime –Не имеет схемы, свойства разделяются на metadata (Id, Version, Kind) и flexible –Blob не имеет второй группы св-в, первая содержит дополнит.св-во Content

Пример сущностей PropertyTypeValue MetadataIDEntityIdVWGOLF-01 KindEntityKindCar FlexPropsDescriptionStringReliable, one owner, … PriceNumeric ListingDateDatetime LocationZipString98052 PropertyTypeValue MetadataIDEntityIdMINICOOPER-264 KindEntityKindFunCar FlexPropsDescriptionStringReliable, one owner, … PriceNumeric ListingDateString1 st January, 2008 LocationZipString98052 EngineSizeNumeric1600 Доп.св-во Разные типы экземпляров Разные типы

API Протоколы REST, SOAP Язык запросов по типу синтаксиса С# LINQ – from e in container wheree.Kind == Expo:FunCar&& e[Zip] == && e[Model] == Mini Cooper select e Семантике операторов не требует контракта схемы – e[Zip] может быть строкой в одной сущности и числом в другой – e[Tag] == CUSTOMER означает отыскать все экземпляры, гдеTag – строка и имеет значение CUSTOMER Поддерживаются запросы по данным и метаданным

См. также Доклад AR 205 –Дэвид Чэппел. «Обзор сервисной платформы Microsoft Azure» –5 декабря, 9:30, Большой зал Доклад DT 207 –Алексей Самохин, Марат Бакиров «Windows Azure: Разработка для Облака» – 5 декабря, 13:00, Красный зал

Дальнейшая информация Официальный сайт конференции «Платформа-2009» – Российская группа пользователей SQL Server – Форум сообщества – Миграция на SQL Server 2008 – ru/library/bb aspxhttp://technet.microsoft.com/ru- ru/library/bb aspx

См. также Доклад DB 302 –Дмитрий Артемов. «Миграция на SQL Server 2008 с предыдущих версий» –4 декабря, 16:30, Зеленый зал

А ты уже зарегистрировался в Russian SQL Server User Group?

Заполните анкету: Терминалы - холлы конференции и интернет-кафе на 1 этаже Заполните анкету: Терминалы - холлы конференции и интернет-кафе на 1 этаже Чтобы участвовать в розыгрыше призов Чтобы участвовать в розыгрыше призов Результаты – на сайте конференции и в голосовых объявлениях после розыгрышей в 14:30, 16:00, 17:30 и 19:00 Результаты – на сайте конференции и в голосовых объявлениях после розыгрышей в 14:30, 16:00, 17:30 и 19:00 Не забывайте заполнять анкеты по докладам Ваше мнение очень важно! Подробная информация по заполнению анкет – на сайте конференции