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

Содержание

Слайд 2

Новые возможности SQL Server 2008

Transparent Data Encryption
External Key Management
Data Auditing
Pluggable CPU
Transparent Failover

Новые возможности SQL Server 2008 Transparent Data Encryption External Key Management Data
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
… и много, что еще

Слайд 3

Краткий курс истории SQL Server

1989 1990 1992 1995 1996 1998 2000

Краткий курс истории SQL Server 1989 1990 1992 1995 1996 1998 2000
2005 2008

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

Слайд 4

План презентации

Надежность
SQL Server 2008 обеспечивает организациям запуск критических для бизнеса приложений на

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

Слайд 5

Надежность

Защита данных
Прозрачное шифрование базы
Внешнее управление ключами
Улучшенные возможности аудита
Непрерывность бизнес-процессов
Новые возможности зеркалирования
Автоматическое восстановление

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

Слайд 6

Transparent Data Encryption (TDE)

Шифрование/дешифрование на уровне базы данных
DEK зашифрован:
Мастер-ключом сервиса (Service Master

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

Слайд 7

Демо

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

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

Слайд 8

Внешнее управление ключами Extensible Key Management (EKM)

Хранение ключа, управление и шифрование производится

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

SQL EKM Provider DLL

SQL EKM Key
(HSM key proxy)

Data

SQL Server

Слайд 9

Сценарии использования

Потеря или кража жесткого диска хранения БД
Неавторизованый доступ к файлам БД
Неавторизованный

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

Без ключа или HSM базу данных не открыть

Слайд 10

Компрессия данных в SQL Server 2008

Только Enterprise Edition
Типы компрессии
ROW
Хранит значения фиксированной

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

Слайд 11

Префиксы

Выделить общий префикс вдоль колонки через все записи на странице
Сохранить эти префиксы

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

Слайд 12

Префиксы

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

Префиксы Page Header Lamb 5000000 0x5B8D80 Lambei 5000001 0x41AABB Lee 5000003 0x9A4041

Слайд 13

Словарь

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

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

Слайд 14

Словарь

Page Header

0x5B8D80

0x41AABB

Lee

0x9A4041

Lee

0x112233

0x5CAABB

4

5i

20x41

20x43

600000

20x42

0x5B8D80

Lee

Префикс

Словарь

1

1

0

0

6000000
=
0x5B8D80

Словарь Page Header 0x5B8D80 0x41AABB Lee 0x9A4041 Lee 0x112233 0x5CAABB 4 5i

Слайд 15

Эффект от компрессии Customer: Dynamics AX

Достигнут коэффициент сжатия
> 90% для страничной компрессии
Время

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

Слайд 16

В сравнении с другими производителями

SQL Server 2008 ЕЕ против Oracle 11g EE

В сравнении с другими производителями SQL Server 2008 ЕЕ против Oracle 11g

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

Слайд 17

В сравнении с другими производителями

Коэффициент компрессии лучше в SQL Server 2008
147GB (SQL)

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

Слайд 18

В сравнении с другими производителями

ROW компрессия в Oracle делает “out of the

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

Слайд 19

Демо

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

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

Слайд 20

Мониторинг и диагностика

Performance Studio в составе SQL Server 2008
Интегрированная с SSMS среда

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

Слайд 21

Демо

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

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

Слайд 22

Основные вопросы аудита сервера БД

Кто залез в/изменил данные или схему?
Когда?
Из какого приложения?

Основные вопросы аудита сервера БД Кто залез в/изменил данные или схему? Когда?

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

Слайд 23

Аудит средствами SQL Server 2005 или 2008 не EE

SQL Trace / Profiler
Триггеры

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

Слайд 24

Критерии выбора ср-ва аудита

Писать

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

Критерии выбора ср-ва аудита Писать Накладные расходы Runtime Impact Admin & Maintenance
отчетность
Реальное время (Alerting)
Разделение зон ответственности

Покупать

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

Слайд 25

Аудит в SQL Server 2008

Теперь аудит является встроенным серверным объектом
DDL для конфигурирования,

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

Слайд 26

Спецификации аудита

Audit

Security Event Log

Application Event Log

File system

0..1
Server audit specification per Audit object

0..1
DB

Спецификации аудита Audit Security Event Log Application Event Log File system 0..1
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

Слайд 27

Спецификации аудита

Спецификации уровня сервера и БД на
Предопределенные группы действий
Фильтры на индивидуальные действия
Группы

Спецификации аудита Спецификации уровня сервера и БД на Предопределенные группы действий Фильтры
действий уровня сервера
Изменения серверной конфигурации, 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)

Слайд 28

Демо

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

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

Слайд 29

Производительность

Основанное на политиках управление
Автоматическое централизованное администрирование
Удобный процесс разработки
ADO.NET Entity Framework
Моделирование на уровне

Производительность Основанное на политиках управление Автоматическое централизованное администрирование Удобный процесс разработки ADO.NET
бизнес-сущностей
Материализация данных в виде объектов CLR с помощью ADO.NET Object Services
LINQ
Service Broker
Приоритет беседы
Диагностический инструмент

Transact-SQL
Табличные параметры
Раздельные типы DATE/TIME/DATETIME2
Новые DMV для отслеживания зависимостей между объектами
Периодически отсоединенные системы
ADO.NET Sync Svc
Нереляционные типы
HierarchyID
Geometry, Geography
Filestream
Интегрированный в движок полнотекст
Разреженные колонки
Большие (>8000 байт) пользовательские типы

Слайд 30

Хранение неструктурированного контента

Remote Blob Storage

FILESTREAM BLOB Storage

SQL BLOB

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

Слайд 31

Remote BLOB Storage (RBS)

Хранение BLOBов на внешнем по отношению к SQL Server

Remote BLOB Storage (RBS) Хранение BLOBов на внешнем по отношению к SQL
устройстве в той же сети
В отличие от обычного сценария 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

Слайд 32

Архитектура RBS

Приложение

RBS Client Library

BLOB Store Provider Library

BLOB Store

SQL Server

1

2

3

1

Записать BLOB(Photo)

Вернуть Blob ID

Записать

Архитектура RBS Приложение RBS Client Library BLOB Store Provider Library BLOB Store
Blob ID в поле PhotoRef

2

3

Граница машины

Слайд 33

Запрос пользователя

Прочесть BlobId

Прочесть Blob

Получить Blob

Прочесть Blob (blobId)

Чтение BLOBa средствами RBS

Пользователь читает содержимое

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

Приложение получает Blob Id

Приложение получает Blob

Слайд 34

RBS – пример

// Создать новый blob.
//
byte[] myBlobId;
SqlRemoteBlobContext blobContext = new 
    SqlRemoteBlobContext(sqlConn);
using

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

Слайд 35

RBS – пример

// В служебную таблицу добавить новую запись со свежим blob

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

Слайд 36

Что такое FILESTREAM

varbinary(max), хранящийся не в БД, а в файловой системе
Нет ограничения

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

Слайд 37

FILESTREAM – пример

create database TestFS on
primary (name = TestFS_data, filename =

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.

Слайд 38

FILESTREAM – пример

/// Пример чтения содержимого поля FileStream. Используется чтение в память,

FILESTREAM – пример /// Пример чтения содержимого поля 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();
}

Слайд 39

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

Поддержка множественных контейнеров на файл-группу FILESTREAM

Поддержка RCSI, сжатия и TDE для

Дальнейшее развитие Поддержка множественных контейнеров на файл-группу FILESTREAM Поддержка RCSI, сжатия и
FILESTREAM

Расширить DB Mirroring на FILESTREAM

Включить миграцию BLOBов в утилиты SQL Server

Интеграция FILESTREAM с RBS

Поддержка горизонтального масштабирования для FILESTREAM

Полнотекстовый поиск для RBS

Слайд 40

Демо

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

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

Слайд 41

Геопространственные расширения SQL Server

Типы Geometry (плоская геометрия) и Geography (эллипсоидальная)
Объекты Geography

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

Слайд 42

Геопространственные индексы

create spatial index Idx on TestGeospatial(g) with
(bounding_box = (0, 0,

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

Слайд 43

Интеграция c другими продуктами

Microsoft Virtual Earth
http://www.microsoft.com/VIRTUALEARTH/
Что не удивительно, потому что Microsoft ☺
ESRI

Интеграция c другими продуктами Microsoft Virtual Earth http://www.microsoft.com/VIRTUALEARTH/ Что не удивительно, потому
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

Слайд 44

Демо

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

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

Слайд 45

Подробнее...

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

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

Слайд 46

Удобные средства разработки

SQL Server 2008 поддерживает ADO.NET Entity Framework и запросы средствами

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

Писать так несколько более удобно, чем так

Слайд 47

Пример SP, выполнящей джойн двух таблиц средствами LINQ

using System.Linq;
using System.Data.Linq; //Добавить reference
using

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

Слайд 48

Демо

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

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

Слайд 49

См. также

Доклад DT 405
Иван Бодягин, Андрей Корявченко
«Функциональное программиро- вание и параллельные вычисления –

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

Слайд 50

Основанное на политиках управление

Категории

Фасеты

Условия

Политики

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

Слайд 51

Условия политик

Check Condition – условие, задающее цель политики
Against Targets – набор целевых

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

Условие – логический оператор, определяющий логическую конфигурацию объекта

Слайд 52

Ручная проверка администратором

Задание SQL Server Agent проверяет по расписанию и пишет в

Ручная проверка администратором Задание SQL Server Agent проверяет по расписанию и пишет
журнал о несоответствиях

DDL триггера откатывают не соответствующие изменения

Информация о несоответствующих изменениях пишется в журнал

Мониторинг выполнения условиям политик

Слайд 53

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

Microsoft.SqlServer. Dmf.dll

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

Слайд 54

SQL Server Database Engine

Режим On Changes

Policy Event Handler

resourcedb

SQLCLR

Policy Engine

SMO

Policy Store

Catalog Views

Service

SQL Server Database Engine Режим On Changes Policy Event Handler resourcedb SQLCLR
Broker

Blocking

Trace Events
Non-Blocking

Откатить транзакцию

Взять все политики для хр.пр. и проверить их относительно этого события.

Database Engine Events

Политика нарушается

Оценка политики относительно ‘BADNAME’

Слайд 55

Демо

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

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

Слайд 56

См. также

Доклад DB 304
Григорий Погульский. «SQL Server 2008. Основанное на политиках управление.

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

Слайд 57

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

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

Слайд 58

Эффективность

Хранилища данных
Компрессия
Параллелизм при сканировании партиций
Оптимизация звездных связей
GROUPING SETS
Возможность группировки по разным условиям

Эффективность Хранилища данных Компрессия Параллелизм при сканировании партиций Оптимизация звездных связей GROUPING
в одном запросе
Оператор MERGE
Change Tracking и Change Data Capture
Аналитические службы
Best Practice Design Alerts
Построитель связей
Блочные вычисления
Обратная запись MOLAP

Службы отчетности
Переработанный механизм
Новые возможности Report Designer
Tablix
Report Builder
Отдельное приложение для интерактивного построения отчетов в Office-подобном интерфейсе
Мощные средства визуализации (новые графики и шкалы)
Добавлен рендеринг в формат MS Word

Слайд 59

Оператор MERGE Сценарий

OLTP: Слияние недавней информации из внешнего источника
OLAP: Инкрементное пополнение

Исходная

Оператор MERGE Сценарий OLTP: Слияние недавней информации из внешнего источника OLAP: Инкрементное
таблица
(Торги)

Целевая таблица
(Stock Holding)

Результат
(Stock Holding)

INSERT

UPDATE

Слайд 60

Оператор MERGE

Сочетает внутри себя несколько операций DML
Действует на основе джойна между источником

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

Слайд 61

Демо

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

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

Слайд 62

Наборы группирования

Определяет множественные условия группировки в одном запросе
Производит единый набор записей, эквивалентный

Наборы группирования Определяет множественные условия группировки в одном запросе Производит единый набор
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

Слайд 63

Табличные параметры

Входные параметры табличных типов для хранимых процедур / функций
Ведут себя подобно

Табличные параметры Входные параметры табличных типов для хранимых процедур / функций Ведут
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 (стриминг), DbDataReader
и OLEDB / ODBC
SQL_SS_Table

Слайд 64

Типы Date и Time

CREATE TABLE Employee {
FirstName VARCHAR(10),
LastName VARCHAR(10),
Birthday

Типы Date и Time CREATE TABLE Employee { FirstName VARCHAR(10), LastName VARCHAR(10),
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’ ,..)

Слайд 65

Другие новшества Т-SQL

UPDATE Inventory SET quantity += s.quantity
FROM Inventory AS i

Другие новшества Т-SQL UPDATE Inventory SET quantity += s.quantity FROM Inventory AS
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);

Слайд 66

Синхронизация и аудит

Несмотря на то, что эти сценарии довольно схожи
И тот, и

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

Слайд 67

Сценарии использования

Change Data Capture

Change Tracking

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

Слайд 68

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

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

Слайд 69

Демо

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

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

Слайд 70

DMV

Shared Database

New server infrastructure

Auditable and traceable process

Block Computation

cube synchronization across multiple instances

Attribute

DMV Shared Database New server infrastructure Auditable and traceable process Block Computation
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

Слайд 71

Attribute Relationship Designer

Attribute Relationship Designer

Слайд 72

Best Practice Design Alerts

Визарды
Cube Wizard
Поддерживает создание куба из одной таблицы
Проще
Dimension Wizard
Автоматически

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

Слайд 73

Aggregation Designer

Просмотр дизайнов агрегатов для каждой партиции
Возможность запуска Aggregation Design Wizard или

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

Слайд 74

Расширения синтаксиса MDX

CREATE KPI
CREATE KPI CURRENTCUBE | Cube_Name .KPI_Name AS KPI_Value [,

Расширения синтаксиса MDX CREATE KPI CREATE KPI CURRENTCUBE | Cube_Name .KPI_Name AS
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]

Слайд 75

Блочные вычисления

Measures.[Sales Amount]

Measures.[Product Contribution]

(Measures.[Sales Amount], Product.[Product Categories].Parent

Step 1: Get

Блочные вычисления Measures.[Sales Amount] Measures.[Product Contribution] (Measures.[Sales Amount], Product.[Product Categories].Parent Step 1:
non-null values from the Storage Engine

Step 2: Calculate the expression

Step 3: Add null values into the query results

Итого 3 вычисления вместо 24

Слайд 76

См. также

Доклад BI 202
Иван Косяков. «Обзор SQL Server Analysis Services 2008»
5 декабря,

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

Слайд 77

Новое в SSIS 2008

Новые типы
DT_DBTIME2, DT_DBTIMESTAMP2, DT_DBTIMESTAMPOFFSET
VSTA для скриптов
Поддержка C#
Data Profiling Task
ADO

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

Слайд 78

Демо

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

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

Слайд 79

Новое в SSRS 2008

Архитектура
Больше не нужен IIS. Берет HTTP.SYS от ОС и

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

Слайд 80

Новое в SSRS 2008

Разработка
Табликс
Разнородные срезы рядом (по времени и по географии)
Независимые агрегаты

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

Слайд 81

См. также

Доклад BI 105
Алексей Еременко. «Управление отчетностью: SQL Server Reporting Services, Microsoft

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

Слайд 82

Представлена 27 октября на PDC 2008
Платформа для удаленного создания и управления веб-приложениями
Соединение

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

Слайд 83

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

Microsoft CloudDB SQL Server P S S S Replication Agent Local 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

Слайд 84

Понятие АСЕ

Authority

Container

Entity

Authority
Единица географического местоположения и биллинга
Аналог пространства имен
Представляется DNS-именем типа mydomain.data.beta.mssds.com, где

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

Слайд 85

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

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

Слайд 86

API

Протоколы REST, SOAP
Язык запросов по типу синтаксиса С# LINQ
from e in

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

Слайд 87

См. также

Доклад AR 205
Дэвид Чэппел. «Обзор сервисной платформы Microsoft Azure»
5 декабря, 9:30,

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

Слайд 88

Дальнейшая информация

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

Дальнейшая информация Официальный сайт конференции «Платформа-2009» http://platforma2009.ru/ Российская группа пользователей SQL Server

Миграция на SQL Server 2008
http://technet.microsoft.com/ru-ru/library/bb677622.aspx

Слайд 89

См. также

Доклад DB 302
Дмитрий Артемов. «Миграция на SQL Server 2008 с предыдущих

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

Слайд 90

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

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

Слайд 91

Заполните анкету: http://platforma2009.ru/Eval.aspx Терминалы - холлы конференции и интернет-кафе на 1 этаже
Чтобы

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

Не забывайте заполнять анкеты по докладам Ваше мнение очень важно!

Подробная информация по заполнению анкет – на сайте конференции

Имя файла: единым-взглядом.pptx
Количество просмотров: 105
Количество скачиваний: 0