Блог инженеров технической поддержки 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

Мы продолжаем публикацию серии статей о 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

Выполнение 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