Блог инженеров технической поддержки SQL Server. Microsoft. Россия

Блог инженеров технической поддержки SQL Server. Microsoft. Россия

Query_hash и Query_plan_hash, что в этих числах? Часть вторая.

Добрый день коллеги. Мы продолжаем разговор о использовании query_hash и query_plan_hash для оптимизации использования процедурного кэша и уменьшения нагрузки на процессор. В предыдущем блоге мы выполнили постановку задачи и вышли на использование этих свойств запроса (http://blogs.technet.com/b/sqlruteam/archive/2014/11/09/sql_5f00_server_5f00_query_5f00_hash_5f00_and_5f00_query_5f00_plan_5f00_hash_5f00_part_5f00_1.aspx). Для более глубокого понимания описываемых свойств рассмотрим упрощенную архитектуру системы компиляции запросов (кода Transact-SQL). Ниже приведена блок-схема. Для упрощения часть… Read more

Query_hash и Query_plan_hash, что в этих числах? Часть первая.

Добрый день коллеги. Работая недавно у одного из заказчиков я обнаружил достаточно интересное поведение системы, что сподвигло меня к написанию данной статьи, которая, возможно, будет интересна и полезна многим. При анализе загруженности процессоров на сервере клиента я обнаружил, что средняя нагрузка на них составляет до 35…40%%, что в общем-то нормально. Странно, что такая нагрузка присутствует на 80-ти… Read more

Методы доступа к FILESTREAM.

Мы продолжаем публикацию блогов по FILESTREAM. В этом блоге мы рассмотрим методы доступа к данным FILESTREAM. Возможно в данной статье для вас не будет ничего нового, но мы решили опубликовать его, чтобы наш разговор о FILESTREAM был логично завершен. Для доступа к FILESTREAM есть две возможности: Доступ с использованием языка Transact-SQL. Доступ из Win API специально предназначенного… Read more

SQL Server FILESTREAM сборщик мусора (garbage collection)

В данной статье мы расскажем о системе сбора мусора (FILESTREAM garbage collection), отвечающей за удаление ненужных (удаленных) файлов. Просмотрим содержимое документа, загруженного в FILESTREAM. use FileStreamTest;GOSELECT cast (Document as char(100) ) as [Document text]FROM dbo.FS_RecordsWHERE DocId = 2; Document text Yes, it”s work fine                                                                                Выполним обновление поля таблицы. Мы будем выполнять полное обновление поля, поскольку… Read more

Внутренние механизмы и скрытые элементы FILESTREAM

Мы продолжаем публикацию серии статей о SQL Server FILESTREAM. В предыдущей статье мы рассказали о связи FILESTREAM с операционной системой. Далее мы продолжим разговор о скрытых (внутренних) механизмах работы FILESTREAM. Создадим тестовую базу. USE master;GOCREATE DATABASE FileStreamTestON PRIMARY (Name=FileStreamTest_data, FILENAME = ‘C:\FileStream\FileStreamTest.mdf’),FILEGROUP FSGroup CONTAINS FILESTREAM(Name=FSData, FILENAME = ‘C:\FileStream\filestream1’)LOG ON (Name=FileStreamTest_log, FILENAME = ‘C:\FileStream\FileStream.ldf’);GO После создания… Read more

Введение в FILESTREAM и связь FILESTREAM с операционной системой.

Большинство типов данных является неструктурированными (например, текстовые документы, изображения и видеоролики). Такие неструктурированные данные часто хранятся за пределами базы данных отдельно от структурированных данных. Подобное разделение может привести к усложнению управления данными. Либо, если данные связаны со структурированным хранилищем, могут быть ограничены возможности файловых потоков и производительность. Хранилище FILESTREAM объединяет компонент SQL Server Database Engine… Read more

Внутренние механизмы SQL Server FILESTREAM.

Этой статьей мы начинаем публикацию серии блогов по системе FILESTREAM встроенной в MS SQL Server и позволяющей хранить на файловой системе неструктурированные данные, которые ранее хранились в таблицах SQL Server. Основная цель – познакомить вас с внутренними механизмами обеспечивающими работу FILESTREAM. При этом мы будем рассматривать связь с операционной системой и внутренними таблицами SQL Server. … Read more

Выполнение join и транзакций между различными базами в In-Memory database.

Внимательно прочитав описание на In-memory базы данных мы можем обнаружить большое количество ограничений (http://msdn.microsoft.com/en-us/library/dn247639.aspx), присутствующих в настоящее время. Часть этих ограничений, быстрее всего, так и останется в будущем, но часть исчезнет. Одно из ограничений связано с невозможностью выполнять Cross-database транзакции и запросы (http://msdn.microsoft.com/en-us/library/dn584627.aspx) если в эти запросы вовлечены In-memory таблицы. Приведем пример. При попытке выполнения… Read more

Доступ к данным в memory optimized таблицах

Мы продолжаем изучение новых возможностей SQL Server 2014 в части In-memory database. Сегодня мы рассмотрим методы доступа к объектам In-memory базы данных. Доступ к таблицам In-memory базы данных может быть осуществлен: Используя Natively compiled хранимых процедур – наиболее быстрый способ доступа к данным; Используя стандартный T-SQL; Особенности Natively compiled хранимых процедур: Код хранимой процедуры, написанный… Read more

Основы построения In-Memory СУБД SQL Server 2014. Bw-tree индексы.

В предыдущих блогах мы рассмотрели основы построения In-Memory баз данных. См. http://blogs.technet.com/b/sqlruteam/archive/2014/03/28/sql2014_5f00_memory_5f00_optimized_5f00_rdbms_5f00_overview_5f00_physical_5f00_structure.aspx, http://blogs.technet.com/b/sqlruteam/archive/2014/04/03/sql2014_5f00_memory_5f00_optimized_5f00_rdbms_5f00_overview_5f00_hash_5f00_indexes.aspx. Из предыдущего блога стало понятно, что в  In-Memory базах данных используется другой класс индексов. Это hash-индексы. Hash-индексы играют важную роль в работе этого типа баз. В отличии от стандартных баз (On-Disk), где возможно существование таблицы в формате “куча” (heap), при этом страницы,… Read more