No Image

Субд ms sql server 2008

СОДЕРЖАНИЕ
287 просмотров
10 марта 2020

Персональные инструменты

Microsoft SQL Server — система управления реляционными базами данных (РСУБД), разработанная корпорацией Microsoft. Основной используемый язык запросов — Transact-SQL, создан совместно Microsoft и Sybase. Transact-SQL является реализацией стандарта ANSI/ISO по структурированному языку запросов (SQL) с расширениями. Используется для работы с базами данных размером от персональных до крупных баз данных масштаба предприятия; конкурирует с другими СУБД в этом сегменте рынка. [Источник 1]

Microsoft SQL Server 2008

Разработчики: Sybase, Ashton-Tate, Microsoft
Предыдущий выпуск: 10 / 3 августа 2008
Написана на: C, C++, C#
Операционная система: Windows
Размер дистрибутива: 1 Gb
Лицензия: коммерческая, для разработчиков
Веб-сайт www .cogin .com /dboctopus /

Содержание

История выпусков SQL Server

Версия Год Название Кодовое имя
1.0 (OS/2) 1989 SQL Server 1.0 (16 bit) Filipi
1.1 (OS/2) 1991 SQL Server 1.1 (16 bit) Pietro
4.21 (Windows NT) 1993 SQL Server 4.21 SQLNT
6.0 1995 SQL Server 6.0 SQL95
6.5 1996 SQL Server 6.5 Hydra
7.0 1998 SQL Server 7.0 Sphinx
1999 SQL Server 7.0 OLAP Tools Palato mania
8.0 2000 SQL Server 2000 Shiloh
8.0 2003 SQL Server 2000 64-bit Liberty
9.0 2005 SQL Server 2005 Yukon
10.0 2008 SQL Server 2008 Katmai
10.25 2010 Azure SQL DB Cloud Database or CloudDB
10.50 2010 SQL Server 2008 R2 Kilimanjaro (aka KJ)
11.0 2012 SQL Server 2012 Denali
12.0 2014 SQL Server In-Memory OLTP Hekaton
13.0 2016 SQL Server 2016
14.0 2017 SQL Server vNext

Общие сведения

Версия SQL Server, которая должна была заменить SQL Server 2005, получила кодовое имя Katmai. В период активной разработки Microsoft крайне неохотно делилась информацией о новой версии. На презентации SQL Server 2005 Пол Флесснер (на тот момент занимавший пост вице-президента подразделения Microsoft, занимавшегося разработкой SQL Server), уверенно заявил, что выход новой версии состоится не позднее, чем через два года после выхода SQL Server 2005. Однако в апреле 2007 года ещё не было никакой информации о скором выходе продукта, или хотя бы о начале его бета-тестирования. Тем не менее, в австрийском блоге на TechNet была опубликована информация о программе Katmai Technology Adoption Program (сокр. TAP), начало которой было якобы запланировано на июнь 2007 года. Также были упомянуты слухи о том, что новая версия выйдет в 2008 году, но Microsoft на тот момент ни подтверждала, ни отрицала эту информацию. Некоторые источники привязывали выход Katmai к выходу Longhorn Server and Visual Studio Orcas, из-за чего согласно этой информации новая версия должна была выйти в первой половине 2008 года. Microsoft также отказывалась комментировать эту информацию.

Тем не менее, некоторые журналисты, общавшиеся с представителями корпорации, заявляли о том, что слухи о выходе Katmai в 2008 году вполне соответствуют внутренним планам самой Microsoft. А отказ корпорации разглашать какую-либо информацию о новой версии связывался с переходом на новую модель разработки, причём именно из-за этого Katmai вряд ли должен был выйти в начале 2008 года. Также упоминалось о том, что Katmai не получит этапа официального бета-тестирования, а вместо этого публичное тестирование пройдёт в рамках программы Community Technology Preview (сокр. CTP). При этом утверждалось, что некоторые клиенты Microsoft уже в апреле 2007 года имели на тестировании некоторые части Katmai, не имея при этом на руках релиза целиком. Что касается функциональности новой версии, то журналисты писали о том, что Katmai будет представлять собой лишь развитие SQL Server 2005, а не новое поколение продукта, которым в своё время как раз и стал SQL Server 2005. [1]

Установка

Дистрибутив доступен для загрузки на официальной странице Microsoft.

Типы данных

Типы данных, использующиеся в Microsoft SQL Server 2008. [Источник 2]

Строковые

Типы данных Описание
CHAR(size) Строки фиксированной длиной (могут содержать буквы, цифры и специальные символы). Фиксированный размер указан в скобках. Можно записать до 255 символов.
VARCHAR(size) Может хранить не более 255 символов.
TINYTEXT Может хранить не более 255 символов.
TEXT Может хранить не более 65 535 символов.
BLOB Может хранить не более 65 535 символов.
MEDIUMTEXT Может хранить не более 16 777 215 символов.
MEDIUMBLOB Может хранить не более 16 777 215 символов.
LONGTEXT Может хранить не более 4 294 967 295 символов.
LONGBLOB Может хранить не более 4 294 967 295 символов.
ENUM(x,y,z,etc.) Позволяет вводить список допустимых значений. Можно ввести до 65535 значений в SQL Тип данных ENUM список. Если при вставке значения не будет присутствовать в списке ENUM, то мы получим пустое значение.

Ввести возможные значения можно в таком формате: ENUM ( ‘X’, ‘Y’, ‘Z’)

SET SQL Тип данных SET напоминает ENUM за исключением того, что SET может содержать до 64 значений.

С плавающей точкой (дробные числа) и целые числа

Типы данных Описание
TINYINT(size) Может хранить числа от -128 до 127
SMALLINT(size) Диапазон от -32 768 до 32 767
MEDIUMINT(size) Диапазон от -8 388 608 до 8 388 607
INT(size) Диапазон от -2 147 483 648 до 2 147 483 647
BIGINT(size) Диапазон от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807
FLOAT(size,d) Число с плавающей точкой небольшой точности.
DOUBLE(size,d) Число с плавающей точкой двойной точности.
DECIMAL(size,d) Дробное число, хранящееся в виде строки.

Дата и время

Типы данных Описание
DATE() Дата в формате ГГГГ-ММ-ДД
DATETIME() Дата и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС
TIMESTAMP() Дата и время в формате timestamp. Однако при получении значения поля оно отображается не в формате timestamp, а в виде ГГГГ-ММ-ДД ЧЧ:ММ:СС
TIME() Время в формате ЧЧ:ММ:СС
YEAR() Год в двухзначной или в четырехзначном формате.

Наиболее часто встречающиеся виды SQL-запросов

Запрос — команда, которая подается программе базы данных. Запросы это часть языка DML. Все запросы в SQL состоят из одиночной команды. Структура этой команды обманчиво проста, потому что требуется расширять ее так, чтобы выполнить высоко сложные оценки и обработки данных.

Команда SELECT :

SELECT “Выбор” – самая часто используемая команда, с помощью её идет выборка данных из таблицы.

Вид запроса с применением SELECT :

SELECT id, user_name, city, birth_day FROM users_base;

Такой запрос выведет из таблицы users_base все значения столбцов указанных через запятую после команды SELECT . Также, можно выводить все столбцы одним символом, * т.е. SELECT * FROM users_base; – такой запрос выведет все данные из таблицы.

Структура команды SELECT :

SELECT <Имена столбцов через запятую которые необходимо вывести в запросе>FROM <имя таблицы в базе данных>- это простейший вид запроса. Существуют дополнительные команды для удобства извлечения данных (см. далее “Функции”).

Значения могут быть помещены и удалены из полей, тремя командами языка DML (Язык Манипулирования Данными):

INSERT (Вставка) UPDATE (Обновление, модификация), DELETE (Удаление)

Команда INSERT :

INSERT INTO users_base (user_name, city, birth_day) VALUES (‘Иван’, ‘Рига’, ’20.08.2008’);

Команда INSERT идет вместе с приставкой INTO (in to – в), далее в скобках идут имена столбцов, в которые нужно вставить данные, далее идет команда VALUES (значения) и в скобках по очереди идут значения (обязательно нужно соблюдать очередность значений со столбцами, значения должны идти в той же очередности, как и столбцы указанные вами).

Читайте также:  Jbl connect что это
Команда UPDATE :

UPDATE users_base SET user_name = ‘Иван’;

Команда UPDATE обновляет значения в таблице. Сначала идет сама команда UPDATE затем имя таблицы, после команда SET (установит) далее имя столбца и его значение в кавычках (кавычки ставятся в том случае если значение имеет string формат, если это числовое значение и столбец не привязан к типу данных vchar и любых других строковых типов, то кавычки не имеют смысла.)

Команда DELETE :

DELETE FROM users_base WHERE user_name = ‘Джимми’;

Команда DELETE удаляет строку целиком, определяет строку по критерию WHERE (Где). В данном случае этот запрос удалил бы все строки, в которых значение столбца user_name было бы Джимми. О критерии WHERE и других ниже в статье.

Критерии, функции, условия и т.п. что помогает в SQL:

WHERE – предложение команды SELECT и других DML команд, которое позволяет устанавливать предикаты, условие которых может быть или верным или неверным для любой строки таблицы. Команда извлекает только те строки из таблицы, для которых такое утверждение верно.

Пример: SELECT > – такой запрос выведет только те строки, которые будут соответствовать условию WHERE , а именно все строки в которых столбец user_name имеет значение Андрей.

ORDER BY – условие для сортировки выбранных строк. Имеет 2 критерия ASC и DESC. ASC (сортировка от А до Я или от 0 до 9)

DESC (противоположно от ASC).

Пример: SELECT id, city, birth_day FROM users_base ORDER BY user_name ASC; – такой запрос выведет значения отсортированные по столбцу user_name от А до Я (A-Z; 0-9)

Также это условие можно использовать совместно с условием WHERE .

DISTINCT (Отличный) — аргумент, который обеспечивает способом устранять двойные значения из предложения SELECT . Т.е. если имеются повторные значения в столбце, допустим, user_name то DISTINCT выведет вам только одно, например в базе есть 2 человека по имени Андрей, то запрос с использованием функции DISTINCT выведет вам только 1 значение, которое встретит первым.

Пример: SELECT DISTINCT user_name FROM users_base; – такой запрос выведет нам значения всех записей в столбце user_name но они не будут повторяться, т.е. если имелось бесконечное число повторяющихся значений, то они показаны не будут.

AND – берет два Буля (в форме A AND B) как аргументы и оценивает их по отношению к истине, верны ли они оба.

Пример: SELECT * FROM users_base WHERE city = ‘Париж’ AND user_name = ‘Михаил’; – выведет все значения из таблицы где в одной строке встречается название города (в данном случае Париж и имя пользователя Михаил.

OR – берет два Буля (в форме A OR B) как аргументы и оценивает на правильность, верен ли один из них.

SELECT * FROM users_base WHERE city = ‘Лондон’ OR user_name = ‘Денис’; – выведет все значения из таблицы где в строке встречается название города Лондон или Имя пользователя Денис.

NOT – берет одиночный Булев (в форме NOT A) как аргументы и заменяет его значение с неверного на верное или верное на неверное.

SELECT * FROM users_base WHERE city = ‘Милан’ OR NOT user_name = ‘Всеволод’; – выведет все значения из таблицы где в одной строке встретится имя города Милан или имя пользователя не будет ровно Всеволод.

IN – определяет набор значений в которое данное значение может или не может быть включено.

SELECT * FROM users_base WHERE city IN ( ‘Владивосток’, ‘Токио’); – такой запрос выведет все значения из таблицы в которых встретятся наименования указанных городов в столбце city.

Between – похож на оператор IN. В отличии от определения по номерам из набора, как это делает IN , BETWEEN определяет диапазон, значения которого должны уменьшаться что делает предикат верным.

SELECT * FROM users_base WHERE id BETWEEN 1 AND 10; – выводит все значения из таблицы которые будут находиться в диапазоне от 1 до 10 в столбце id

COUNT – производит номера строк или не NULL значения полей, которые выбрал запрос. SELECT COUNT (*) FROM users_base ; – выведет количество строк в данной таблице. SELECT COUNT (DISTINCT user_name) FROM users_base ; – выведет кол-во строк с именами пользователей (не повторяющихся)

SUM – производит арифметическую сумму всех выбранных значений данного поля. SELECT SUM (id) FROM users_base ; – выведет сумму значений всех строк столбца id .

AVG – производит усреднение всех выбранных значений данного поля. SELECT AVG (id) FROM users_base ; – выведет среднее значение всех выбранных значений столбца id

MAX – производит наибольшее из всех выбранных значений данного поля.

MIN – производит наименьшее из всех выбранных значений данного поля.

Создание таблиц:

CREATE TABLE users_base (id integer, user_name text, city text, birth_day datetime); – выполнение такой команды приведёт к созданию таблицы. Тут всё просто, пишем команду CREATE TABLE далее имя таблицы, которую хотим создать, далее в скобках через запятую имена столбцов и их тип данных. Это стандартный вид создания таблицы в SQL. Ниже приведен пример создания таблиц в SQL Server 2005:

Основные нововведения и изменения в SQL Server 2008 [Источник 3]

Присвоение переменных в одну строку

Можно писать так:

Математический синтаксис

Компрессия

a) Можно включить компрессию для таблиц/партиций таблиц, индексов.

b) Уровней компрессий — 2:

c) В страничное сжатие включается строчное. В страничном сжатии есть тип сжатия основанный на «column prefix» matching

d) Бекапы автоматически сжимаются.

В целом сообщается, что нагрузка на процессор может возрасти и использование памяти уменьшится.

Включить сжатие можно через Management Studio:

Исходный код MS SQL Server (до версии 7.0) основывался на коде Sybase SQL Server, и это позволило Oracle, OS/2 (около 1989 года), которая фактически была эквивалентом Sybase SQL Server 3.0 для Unix, VMS и др. Microsoft SQL Server 4.2 был выпущен в 1992 году и входил в состав операционной системы Microsoft OS/2 версии 1.3. Официальный релиз Microsoft SQL Server версии 4.21 для ОС Windows NT состоялся одновременно с релизом самой Windows NT (версии 3.1). Microsoft SQL Server 6.0 был первой версией SQL Server, созданной исключительно для архитектуры NT и без участия в процессе разработки Sybase.

К тому времени, как вышла на рынок ОС Windows NT, Sybase и Microsoft разошлись и следовали собственным моделям программного продукта и маркетинговым схемам. Microsoft добивалась исключительных прав на все версии SQL Server для Windows. Позже Sybase изменила название своего продукта на Adaptive Server Enterprise во избежание путаницы с Microsoft SQL Server. До 1994 года Microsoft получила от

После разделения компании сделали несколько самостоятельных релизов программ. SQL Server 7.0 был первым сервером баз данных с настоящим пользовательским графическим интерфейсом администрирования. Для устранения претензий со стороны Sybase в нарушении авторских прав, весь наследуемый код в седьмой версии был переписан.

Читайте также:  Geforce gtx 550 ti 2gb характеристики

Версия SQL Server 2005 — была представлена в ноябре 2005 года. Запуск версии происходил параллельно запуску Visual Studio 2005. Существует также «урезанная» версия Microsoft SQL Server — Microsoft SQL Server Express; она доступна для скачивания и может бесплатно распространяться вместе с использующим её программным обеспечением.

С момента выпуска предыдущей версии SQL Server (SQL Server 2000) было осуществлено развитие интегрированной среды разработки и ряда дополнительных подсистем, входящих в состав SQL Server 2005. Изменения коснулись реализации технологии , входящей в состав компонента SQL Server Integration Services (SSIS), сервера оповещения, средств аналитической обработки многомерных моделей данных (

Функциональность

Microsoft SQL Server в качестве языка запросов использует версию Transact-SQL (сокращённо T-SQL), являющуюся реализацией SQL-92 (стандарт хранимых процедур и обеспечивает поддержку транзакций (взаимодействие базы данных с управляющим приложением). Microsoft SQL Server и Sybase ASE для взаимодействия с сетью используют протокол уровня приложения под названием Tabular Data Stream (TDS, протокол передачи табличных данных). Протокол TDS также был реализован в проекте FreeTDS с целью обеспечить различным приложениям возможность взаимодействия с базами данных Microsoft SQL Server и Sybase.

Microsoft SQL Server также поддерживает Open Database Connectivity (ODBC) — интерфейс взаимодействия приложений с СУБД. Версия SQL Server 2005 обеспечивает возможность подключения пользователей через веб-сервисы, использующие протокол SOAP. Это позволяет клиентским программам, не предназначенным для Windows, кроссплатформенно соединяться с SQL Server. Microsoft также выпустила сертифицированный драйвер JDBC, позволяющий приложениям под управлением

SQL Server поддерживает зеркалирование и кластеризацию баз данных. Кластер сервера SQL — это совокупность одинаково конфигурированных серверов; такая схема помогает распределить рабочую нагрузку между несколькими серверами. Все сервера имеют одно виртуальное имя, и данные распределяются по IP адресам машин кластера в течение рабочего цикла. Также в случае отказа или сбоя на одном из серверов кластера доступен автоматический перенос нагрузки на другой сервер.

SQL Server поддерживает избыточное дублирование данных по трем сценариям:

  • Снимок: Производится «снимок» базы данных, который сервер отправляет получателям.
  • История изменений: Все изменения базы данных непрерывно передаются пользователям.
  • Синхронизация с другими серверами: Базы данных нескольких серверов синхронизируются между собой. Изменения всех баз данных происходят независимо друг от друга на каждом сервере, а при синхронизации происходит сверка данных. Данный тип дублирования предусматривает возможность разрешения противоречий между БД.

В SQL Server 2005 встроена поддержка .NET Framework. Благодаря этому, хранимые процедуры БД могут быть написаны на любом языке платформы .NET, используя полный набор библиотек, доступных для .NET Framework, включая Common Type System (система обращения с типами данных в Microsoft .NET Framework). Однако, в отличие от других процессов, .NET Framework, будучи базисной системой для SQL Server 2005, выделяет дополнительную память и выстраивает средства управления SQL Server вместо того, чтобы использовать встроенные средства Windows. Это повышает производительность в сравнении с общими алгоритмами Windows, так как алгоритмы распределения ресурсов специально настроены для использования в структурах SQL Server.

Разработка приложений

Microsoft и другие компании производят большое число программных средств разработки, позволяющих разрабатывать бизнес-приложения с использованием баз данных Microsoft SQL Server. Microsoft SQL Server 2005 включает в себя также Common Language Runtime (CLR) Microsoft .NET, позволяющий реализовывать хранимые процедуры и различные функции приложениям, разработанным на языках платформы .NET (например, VB.NET или C#). Предыдущие версии средств разработки Microsoft использовали только API для получения функционального доступа к Microsoft SQL Server.

SQL Server Express Edition

Microsoft SQL Server Express является бесплатно распространяемой версией SQL Server. Данная версия имеет некоторые технические ограничения. Такие ограничения делают её непригодной для развертывания больших баз данных, но вполне годится для ведения программных комплексов в масштабах небольшой компании. Содержит полноценную поддержку новых типов данных, в том числе XML-спецификации. Фактически, это полноценный MS SQL Server, включая все его компоненты программирования, поддержку национальных алфавитов и Unicode. Поэтому используется в приложениях, при проектировании или для самостоятельного изучения. Нет никаких препятствий для дальнейшего развёртывания накопленной базы данных на MS SQL Server неэкспрессной версии. В 2007 году Microsoft выпустила отдельную утилиту с графическим интерфейсом для администрирования данной версии, которая также доступна для бесплатного скачивания с сайта корпорации.

Ограничения

  • 1 поддерживаемый процессор (но может быть установлен на любой сервер)
  • 1 Гб адресуемой памяти
  • 4 Гб максимальный размер базы

Червь SQL slammer

Компьютерный червь, получивший название SQL slammer (или просто slammer), использовал уязвимость в MS SQL Server 2000. Данная уязвимость была устранена патчем, который выпустила Microsoft еще за шесть месяцев до запуска червя. Тем не менее, многие системы не были исправлены и оставались уязвимыми. Следствием этого стало заражение 25 января 2003 года этим вирусом большого числа компьютеров, что вызвало серьезные затруднения в функционировании интернета.

SQL Server 2008: обзор нововведений

Microsoft SQL Server – это проприетарная система управления базами данных,
обеспечивающая сетевой многопользовательский доступ,
использует расширенный язык запросов T-SQL.
Ведет свою историю с 1989 года, первоначальная версия создана Sybase.
В предыдущей 2005 версии была введена поддержка CLR, которая позволяла
писать процедуры с использованием языков, работающих на платформе .Net.

История версий:
• 1992 — SQL Server 4.2
• 1993 — SQL Server 4.21 под Windows NT
• 1995 — SQL Server 6.0, кодовое название SQL95
• 1996 — SQL Server 6.5, кодовое название Hydra
• 1999 — SQL Server 7.0, кодовое название Sphinx
• 1999 — SQL Server 7.0 OLAP, кодовое название Plato
• 2000 — SQL Server 2000 32-bit, кодовое название Shiloh (версия 8.0)
• 2003 — SQL Server 2000 64-bit, кодовое название Liberty
• 2005 — SQL Server 2005, кодовое название Yukon (версия 9.0)
• 2008 — SQL Server 2008, кодовое название Katmai (версия 10.0)

SQL Server используется на многих предприятиях, причем 2000 версию до сих пор используют многие компании,
а многие DBA говорят, что лучше 2000 пока еще Microsoft не смогла сделать,
особенно это относится к Management Studio.

SQL Server 2008 появился в августе 2008 года.

Более подробно о истории MSSQL можно прочитать в WikiPedia

1. Присвоение переменных в одну строку.

Теперь вместо:
DECLARE @myVar intSET @myVar = 5

Можно писать так:
DECLARE @myVar int = 5

2. Математический синтаксис

DECLARE @myVar int = 5
SET @myVar += 1

3. Компрессия.

a) Можно включить компрессию для таблиц/партиций таблиц, индексов.
b) Уровней компрессий — 2: 1) Строчное, 2) Страничное
c) В страничное сжатие включается строчное.
В страничном сжатии есть тип сжатия основанный на «column prefix» matching
d) Бекапы автоматически сжимаются.

В целом сообщается, что нагрузка на процессор может возрасти и использование памяти уменьшится.

Включить сжатие можно через Management Studio:
Вместо PAGE можно использовать ROW и выбирать партиции таблицы

И сгенерированный скрипт сжатия:

ALTER TABLE [dbo].[TestTable] REBUILD PARTITION = ALL
WITH (DATA_COMPRESSION = PAGE)

CREATE NONCLUSTERED INDEX IX_INDEX ON TestTable (TestTableVarFieldOne)
WITH ( DATA_COMPRESSION = PAGE ) ;

Читайте также:  Синс оф солар эмпайр ребеллион

Дополнительную информация
Минусы лицензии: Сжатие доступно только в выпусках SQL Server 2008 Enterprise и Developer.

4. Появились индексы с фильтрацией.

CREATE NONCLUSTERED INDEX IX_TestTable_OneON TestTable(TestTableVarFieldOne)
WHERE TestTableVarFieldOne = ‘SampleText’

Правда почему то они у меня не сработали.
Видимо нельзя было организовывать первичный ключ…

Тут описаны примеры: [1][2]

Для чего это нужно:

Например мы знаем что по колонке очень часто идет какой-нибудь текстовый запрос из разряда = ‘SampleText’, ставим этот индекс, и наш план выполнения запроса становится вкусный и быстрый.

5. В SQL Server 2008 есть автоматический аудит.
Вызывается он из Management Studio из группы «Security»

Создадим правило аудита, кстати, параметр «Maximum», идущий после параметра «File Path», означает, сколько файлов будет создаваться в папке.

Теперь ставим аудит на сервер в целом или Базу данных.

Например, нам нужно поставить аудит на то, кто смотрел данные из таблицы «TestTable», обладающий правами «db_datareader»:

Для этого определим тип действия (их, кстати, порядка 30), класс объекта (БД/Схема/Объект), имя объекта и группу прав.

Это же можно сделать и в T-SQL:

CREATE DATABASE AUDIT SPECIFICATION [TestTableAuditOnView]
FOR SERVER AUDIT [TestAudit]
ADD (SELECT ON OBJECT::[dbo].[TestTable] BY [db_datareader])WITH (STATE = OFF)GO

Ну и потом не забудем сделать наш аудит «Enable»
Можно почитать про аудит больше тут или тут

6. Новый дебаггер.

Собственно дебаггер простой напоминает сильно дебаггер в Visual Studio,
ходит по брякам, и по Step Into/Step Out, можно ставить Watch, смотреть Call Stack,
автоматически заходить в триггеры.

В 2005 версии это можно было делать либо из Visual Studio,
либо, насколько помню, из Business Intelligence Studio и что не очень удобно,
и права для девелоперов придеться дать не больше, не меньше как «sysadmin»

7. Прозрачное шифрование БД.

Прозрачное шифрование оно же TDE, очень полезная фича, но скорее всего она полезна будет только либо на специфичных задачах, когда данные являются критическими с точки зрения безопасности, либо когда требуется решить проблему:
«Кто будет охранять самих сторожей» — когда требуется одним администраторам дать доступ к одному, вторым ко второму, а третьему к третьему и если кто-нибудь из этой тройки утащит журнал или бекап или mdf файлы, они будут бесполезны ввиду шифрования.

Почитать подробнее: [тут] или [тут]

Минусы лицензии: Доступно только в Developer/Enterprise версиях.

8. Замораживание плана запросов (Plan freezing).

Как вы знаете SQL Server иногда пытается менять план запроса, в зависимости от того, как поменялись данные (схема БД).

Необходимо это для двух вещей:
1) Для того, чтобы сервер не тратил время, пересчитывая план,
2) для того чтобы сервер не «разоптимизировал» план
Это довольно большой обьем работы, поэтому лучше посмотрите Virtual Lab.

Позднее если эта тема будет интересна ее можно будет раскрыть.

9. Resource Governor (Разделение и властвование над ресурсами сервера).

В Management Studio пункт меню находится в группе «Management», в окне Object Explorer.

Почитать можно [тут]
А посмотреть [тут]

10. Новые типы данных (DATE, TIME, DATETIMEOFFSET, DATETIME2, Hierarchyid, GEOMETRY, GEOGRAPHY, FILESTREAM)

a) DATE – храним только дату
b) TIME – храним только время
c) DATETIMEOFFSET – храним дату и время со смещениями «+» или «-»
d) DATETIME2 – храним дату и время от January 1, 0001 до December 31, 9999
e) HierarchyId – храним данные иерархий причем дерево иерархий будет довольно компактным.

Кстати хорошо описан данный тип в статье XaocCPS ( http://habrahabr.ru/blogs/sql/27774/ )

f) Geometry и Geography это специальные типы, которые содержат в себе векторные объекты:

Object Descripton
Point A location
MultiPoint A series of points.
LineString A series of zero or more points connected by lines.
MultiLineString A set of linestrings
Polygon A contiguous region described by a set of closed linestrings.
MultiPolygon A set of polygons.
GeometryCollection A collection of geometry types.

g) FileStream – храним данные в файловой системе
Почитать можно [тут]

Отличия в том, что расстояния в типе Geography выражены в виде градусах долготы и широты, а Geometry в специфичных Unit.

11. Table Value Parameters (можно передавать таблицы как параметр)

Для чего может быть нужно передавать таблицу из приложения в Базу Данных?

1) Для того чтобы уменьшить кол-во INSERT/UPDATE операций,
2) Для того чтобы некоторые части слоя бизнеслогики перенести на сервер

Плюсы:
1) Строгая типизация
2) Сортировка
3) Мы можем в этих таблицах использовать индексы (первичный ключ)
4) Удобство

Минусы:
Можно наворотить плохое, особенно людям, которые очень изобретательны (например, процедурой генерируют HTML код)

Пример SQL кода:

Use testDatabase
GO
CREATE TYPE Customer AS TABLE (id int, CustomerName nvarchar(50), postcode nvarchar(50));
GO
CREATE TABLE Customers (id int, CustomerName nvarchar(50));
GO
CREATE TABLE CustomerPostCodes(id int, postcode nvarchar(50));
GO
/*
INSERT INTO Customers VALUES (1, ‘Bob’)
INSERT INTO CustomerPostCodes VALUES (1, ‘ASD’)
INSERT INTO Customers VALUES (2, ‘Jack’)
INSERT INTO CustomerPostCodes VALUES (2, ‘QWE’)
INSERT INTO Customers VALUES (3, ‘Gill’)
INSERT INTO CustomerPostCodes VALUES (3, ‘ZXC’)
GO
*/
CREATE Procedure AddCustomers (@customer Customer READONLY)
AS
INSERT INTO Customers
SELECT id, CustomerName FROM @customer

INSERT INTO CustomerPostCodes
SELECT id, postcode FROM @customer
GO

DECLARE @myNewCustomer Customer;
INSERT INTO @myNewCustomer VALUES (1, ‘Harry’, ‘NEW’)
EXEC AddCustomers @myNewCustomer
GO

SELECT * FROM Customers
SELECT * FROM CustomerPostCodes
GO

Drop table Customers;
go

Drop table CustomerPostCodes;
go

Drop procedure AddCustomers;
go

Drop type Customer;
go

Из C# соответственно передается параметром DataTable.
Посмотреть скринкаст

12. Вкусности новой Management Studio:

a) IntelliSense (дожили таки)

b) Удобная подсветка (тултипы):

К сожалению «+=» это только математический оператор ((

c) Она поддерживает Addin-ы.

d) Интегрированы новые фишечки сервера и удобства — типо дай мне «только 1000 строк»

e) Обновился Activity Monitor
Проще написать, что тут можно увидеть «картину в целом», хотя все же частные детали лучше смотреть SQL Profiler, он для этого более приспособлен, а счетчики эти частично заимствованы из Windows Server 2008/Vista «Мониторинг производительности».

Вообщем смотрим кто, зачем, куда, что и сколько это будет стоить нм ресурсов.

Довольно приятный «логгер последних ресурсоемких запросов»:

Особенно приятно просмотреть сразу план выполнения запроса:

Минусы: Нельзя убрать ненужные колонки или менять их местами…

f) Мульти-серверные запросы.

Можно выполнить запрос (ы) на группе серверов, для этого нужно открыть пункт меню (View -> Registered Servers -> New Query).

SQL Server 2008 по использованию памяти мне кажется более эффективный нежели 2005, Management Studio стала более удобной, новые типы данных могут дать больше удобства в разработке, также я вижу что многое добавлено, но около еще года на продакшн серверах не буду ставить в силу того что буду ждать многочисленных отзывов о продукте, особенно о отзывах тех кто будет использовать TDE, DataTable в виде параметра и стабильности.

Сильно не минусуйте, первый пост, картинки позже сделаю меньше, побежал на работу.

Комментировать
287 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
Adblock
detector