'

единым взглядом

Понравилась презентация – покажи это...





Слайд 0

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


Слайд 1

Новые возможности 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 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 … и много, что еще


Слайд 2

Краткий курс истории SQL Server 1989 1990 1992 1995 1996 1998 2000 2005 2008 Производительность Функциональность Надежность


Слайд 3

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


Слайд 4

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


Слайд 5

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


Слайд 6

Демо Подробную демонстрацию на прозрачное шифрование данных можно посмотреть здесь: http://sqlclub.ru/forum/viewtopic.php?f=6&t=1106


Слайд 7

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


Слайд 8

Сценарии использования Без ключа или HSM базу данных не открыть


Слайд 9

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


Слайд 10

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


Слайд 11

Префиксы Page Header Lamb 5000000 0x5B8D80 Lambei 5000001 0x41AABB Lee 5000003 0x9A4041 Lee 6000000 0x112233 Lambert 5000002 0x5CAABB 4 5i 20x41 20x43 6000000 20x42 5000000 = 0x4C4840


Слайд 12

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


Слайд 13

Словарь Page Header 0x5B8D80 0x41AABB Lee 0x9A4041 Lee 0x112233 0x5CAABB 4 5i 20x41 20x43 600000 20x42 0x5B8D80 Lee Префикс Словарь 1 1 0 0 6000000 = 0x5B8D80


Слайд 14

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


Слайд 15

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


Слайд 16

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


Слайд 17

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


Слайд 18

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


Слайд 19

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


Слайд 20

Демо Демонстрацию применения SQL Server Performance Studio можно посмотреть здесь: http://sqlclub.ru/forum/viewtopic.php?f=6&t=1072


Слайд 21

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


Слайд 22

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


Слайд 23

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


Слайд 24

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


Слайд 25

Спецификации аудита 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 DATABASE AUDIT SPECIFICATION AuditAC TO SERVER AUDIT PCI_Audit     ADD (SELECT ON Customers BY public) Server Audit Specification Server Audit Action Server Audit Action Server Audit Action Server Audit Action Server Audit Action Database Audit Components Database Audit Components Database Audit Components Database Audit Specification Database Audit Action Database Audit Action Database Audit Action Database Audit Action Database Audit Action File


Слайд 26

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


Слайд 27

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


Слайд 28

Производительность Основанное на политиках управление Автоматическое централизованное администрирование Удобный процесс разработки 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 байт) пользовательские типы


Слайд 29

Хранение неструктурированного контента Remote Blob Storage FILESTREAM BLOB Storage SQL BLOB


Слайд 30

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


Слайд 31

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


Слайд 32

Запрос пользователя Прочесть BlobId Прочесть Blob Получить Blob Прочесть Blob (blobId) Чтение BLOBa средствами RBS Пользователь читает содержимое Blobа Приложение получает Blob Id Приложение получает Blob


Слайд 33

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


Слайд 34

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


Слайд 35

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


Слайд 36

FILESTREAM – пример 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.


Слайд 37

FILESTREAM – пример /// Пример чтения содержимого поля FileStream. Используется чтение в память, хотя при желании стрим в памяти можно заменить на стрим в файл или еще куда-нибудь. /// </summary> 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(); }


Слайд 38

Дальнейшее развитие


Слайд 39

Демо Подробную демонстрацию на применение FILESTREAM можно посмотреть здесь: http://sqlclub.ru/forum/viewtopic.php?f=6&t=1317


Слайд 40

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


Слайд 41

Геопространственные индексы 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)


Слайд 42

Интеграция c другими продуктами Microsoft Virtual Earth http://www.microsoft.com/VIRTUALEARTH/ Что не удивительно, потому что Microsoft ? ESRI ArcGIS 9.3 http://www.esri.com/software/arcgis/geodatabase/about/sqlserver2008.html Что не удивительно, т.к. геопространственные расширения в SQL Server 2008 - результат совместной работы Autodesk Feature Data Object (FDO) Provider Управляет местоположением и дизайном в AutoCAD Map 3D, Autodesk MapGuide и Autodesk Topobase на основе SQL Server 2008 http://pressreleases.autodesk.com/index.php?s=press_releases&item=396%3C%2Ftd%3E Полный список - http://www.microsoft.com/sqlserver/2008/en/us/spatial-partners.aspx


Слайд 43

Демо Подробную демонстрацию на применение геопространственных данных можно посмотреть здесь: http://sqlclub.ru/forum/viewtopic.php?f=9&t=1297 http://sqlclub.ru/forum/viewtopic.php?f=6&t=1312


Слайд 44

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


Слайд 45

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


Слайд 46

Пример SP, выполнящей джойн двух таблиц средствами LINQ 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(); }


Слайд 47

Демо Демонстрацию на использование LINQ на стороне SQL Server можно посмотреть здесь: http://sqlclub.ru/forum/viewtopic.php?f=6&t=1368


Слайд 48

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


Слайд 49

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


Слайд 50

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


Слайд 51

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


Слайд 52

Объектная модель .Net


Слайд 53

SQL Server Database Engine Режим On Changes Policy Event Handler resourcedb SQLCLR Policy Engine SMO Policy Store Catalog Views Service Broker Blocking Trace Events Non-Blocking Откатить транзакцию Взять все политики для хр.пр. и проверить их относительно этого события. Database Engine Events Политика нарушается Оценка политики относительно ‘BADNAME’


Слайд 54

Демо Демонстрацию на использование Policy-Based Management можно посмотреть здесь: http://sqlclub.ru/forum/viewtopic.php?f=6&t=1070


Слайд 55

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


Слайд 56

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


Слайд 57

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


Слайд 58

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


Слайд 59

Оператор 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


Слайд 60

Демо Демонстрацию на оператор MERGE можно посмотреть здесь: http://sqlclub.ru/forum/viewtopic.php?f=6&t=1067


Слайд 61

Наборы группирования Определяет множественные условия группировки в одном запросе Производит единый набор записей, эквивалентный 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(ModifiedDate) FROM Sales.Customer GROUP BY TerritoryID order by TerritoryID SELECT customerType,TerritoryID,MAX(ModifiedDate) FROM Sales.Customer GROUP BY GROUPING SETS ((customerType), (TerritoryID)) order by customerType Ранее SQL 2008


Слайд 62

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


Слайд 63

Типы 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 (‘1541-01-01’) INSERT INTO T (datetime_col) VALUES (’12:30:29.1176548’) CREATE TABLE online-purchase-order { item-id int, item-name VARCHAR(30), qty int, purchase-time datetimeoffset, … } // For value ‘2005-09-08 12:20:19.345 -08:00’ INSERT INTO online-purchase-order VALUES (…., ‘2005-09-08 12:20:19.345 -08:00’ ,..)


Слайд 64

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


Слайд 65

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


Слайд 66

Сценарии использования Change Data Capture Change Tracking


Слайд 67

Отслеживание изменений


Слайд 68

Демо Демонстрацию на Change Data Capture можно посмотреть здесь: http://sqlclub.ru/forum/viewtopic.php?f=6&t=944 Демонстрацию на Change Tracking можно посмотреть здесь: http://sqlclub.ru/forum/viewtopic.php?f=6&t=1068


Слайд 69

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


Слайд 70

Attribute Relationship Designer


Слайд 71

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


Слайд 72

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


Слайд 73

Расширения синтаксиса MDX CREATE KPI CREATE KPI CURRENTCUBE | Cube_Name .KPI_Name AS KPI_Value [, FORMAT_STRING=string, VISIBLE=value, NON_EMPTY_BEHAVIOR=<measure or set>, CAPTION=string, DISPLAY_FOLDER=string, ASSOCIATED_MEASURE_GROUP=<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=<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]


Слайд 74

Блочные вычисления 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


Слайд 75

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


Слайд 76

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


Слайд 77

Демо Демонстрацию на Data Profiling Task можно посмотреть здесь: http://sqlclub.ru/forum/viewtopic.php?f=36&t=1058


Слайд 78

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


Слайд 79

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


Слайд 80

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


Слайд 81

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


Слайд 82

Microsoft CloudDB SQL Server P S S S Replication Agent Local Partition Map Data Node 100 Master Node (Primary Master) Primary Secondary Secondary Fabric Leader Elector Partition Manager Partition Placement Advisor SQL Server Global Partition Map Fabric Data Node 103 P S S S P Data Node 104 P S S P S Data Node 102 P S S P S Data Node 105 P S S S S Data Node 101 P S S P S Load Balancer Partition Management


Слайд 83

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


Слайд 84

Пример сущностей


Слайд 85

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


Слайд 86

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


Слайд 87

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


Слайд 88

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


Слайд 89

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


Слайд 90

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


Слайд 91


×

HTML:





Ссылка: