Вопросы с тегом «database-internals»

13
как имитировать состояние нехватки памяти при выполнении запроса

Я пытаюсь лучше понять, как механизм выполнения SQL Server ведет себя в состоянии нехватки памяти. Говоря о предоставлении памяти, мне интересно, есть ли какой-то способ заставить GrantedMemoryего быть равным RequiredMemory. (Я предполагаю, что есть недокументированный флаг трассировки, который...

13
Массив слотов и общий размер страницы

Я продолжаю читать на многих форумах и во многих блогах, что страница состоит из страницы, показанной ниже: Размер страницы: 16 x 512B = 8192B Заголовок страницы: = 96B Максимальная строка In_Row: = 8060B Это оставляет (8192 - 96 - 8060) B = 36B. Хорошо, это логично и правильно. У меня такой...

13
Чем эти два отката SQL Server отличаются?

В SQL Server 2008 R2 чем отличаются эти два отката: Выполните ALTERоператор в течение нескольких минут, а затем нажмите «Отменить выполнение». Для полного отката требуется несколько минут. Выполните ту же ALTERинструкцию, но убедитесь, что LDFфайл недостаточно велик для успешного завершения. Как...

12
Где SQL Server физически хранит значение IDENTITY для таблицы?

Я надеюсь, что кто-то может указать мне правильное направление на этот. Вот мои разработки до сих пор. SELECT * FROM sys.identity_columnsэто системное представление, которое дает «last_value», но определение для этого представления использует внутреннюю функцию IdentityProperty(colName,...

12
Почему эти похожие запросы используют разные фазы оптимизации (обработка транзакций и быстрый план)?

Пример кода в этом элементе подключения Показывает ошибку где SELECT COUNT(*) FROM dbo.my_splitter_1('2') L1 INNER JOIN dbo.my_splitter_1('') L2 ON L1.csv_item = L2.csv_item Возвращает правильные результаты. Но следующее возвращает неверные результаты (в 2014 году с использованием нового Оценщика...

12
Физическая операция конкатенации: гарантирует ли она порядок выполнения?

В стандартном SQL результат a union allне гарантируется в любом порядке. Итак, что-то вроде: select 'A' as c union all select 'B' Может вернуть две строки в любом порядке (хотя на практике в любой известной мне базе данных «A» будет стоять перед «B»). В SQL Server это превращается в план выполнения...

12
Зачем нужен этот агрегат потока?

Проверьте этот запрос. Это довольно просто (см. В конце поста определения таблиц и индексов, а также скрипт repro): SELECT MAX(Revision) FROM dbo.TheOneders WHERE Id = 1 AND 1 = (SELECT 1); Примечание: «AND 1 = (SELECT 1) просто для того, чтобы этот запрос не был автоматически параметризован, что,...

11
СУММА ДАННЫХ, не соответствующих размеру таблицы из sys.allocation_units

У меня сложилось впечатление, что если бы я суммировал DATALENGTH()все поля для всех записей в таблице, я бы получил общий размер таблицы. Я ошибаюсь? SELECT SUM(DATALENGTH(Field1)) + SUM(DATALENGTH(Field2)) + SUM(DATALENGTH(Field3)) TotalSizeInBytes FROM SomeTable WHERE X, Y, and Z are true Я...

11
Перечислите страницы ROW_OVERFLOW_DATA для конкретной таблицы

Я пытаюсь получить список страниц для таблицы, в которой есть строки с ROW_OVERFLOW_DATA. Я могу получить список выделенных страниц из недокументированного DMV, sys.db_db_database_page_allocationsоднако, похоже, что в выходных данных этого DMV нет страниц ROW_OVERFLOW_DATA. Есть ли другой DMV,...

11
Почему отключение кластеризованного индекса делает таблицу недоступной?

Когда индекс отключен, определение остается в системном каталоге, но больше не используется. SQL Server не поддерживает индекс (так как данные в таблице изменяются), и индекс не может использоваться для удовлетворения запросов. Если кластерный индекс отключен, вся таблица становится недоступной....

11
База данных для эффективного диапазона совокупных запросов?

В качестве упрощенного примера, предположим, у меня есть такая таблица: seq | value ----+------ 102 | 11954 211 | 43292 278 | 19222 499 | 3843 Таблица может содержать сотни миллионов записей, и мне нужно часто делать такие запросы: SELECT sum(value) WHERE seq > $a and seq < $b Даже если seqон...

11
Почему объединение вложенных циклов поддерживает только левое соединение?

В блоге Крейга Фридмана « Объединение вложенных циклов» он объясняет, почему объединение вложенных циклов не может поддерживать правильное внешнее объединение: Проблема в том, что мы сканируем внутреннюю таблицу несколько раз - по одному разу для каждой строки внешнего соединения. Мы можем...

11
High PAGELATCH_ * и WRITELOG ждет. Они связаны?

Мы наблюдаем очень высокие типы ожидания PAGELATCH_EX и PAGELATCH_SH вместе с высокими ожиданиями WRITELOG. Я диагностировал запрос, вызывающий ожидание PAGELATCH, и могу устранить их, уменьшив частоту вставки в занятый кластерный первичный ключ, определенный со значением IDENTITY. Я понимаю, что...

11
Какое максимальное количество локальных переменных может участвовать в операции SET?

У меня есть хранимая процедура, которая содержит бизнес-логику. Внутри него около 1609 переменных (не спрашивайте меня, почему, именно так работает двигатель). Я пытаюсь SETпеременную к объединенному значению всех других переменных. В результате при создании я получаю ошибку: Сообщение 8631,...

10
Как SQL Server обрабатывает данные для запроса, если в буферном кеше недостаточно места?

Мой вопрос заключается в том, как SQL Server обрабатывает запрос, который должен вытянуть больший объем данных в буферный кеш, чем есть доступное пространство? Этот запрос будет содержать несколько объединений, поэтому результирующий набор не существует в этом формате уже на диске, и ему...

10
Получите минимальное ведение журнала при загрузке данных во временные таблицы

Даже после прочтения Руководства по производительности при загрузке данных я все еще не уверен, нужно ли добавлять подсказку таблицы TABLOCK в пустую временную таблицу, определенную с помощью кластеризованного индекса, чтобы получить минимальное ведение журнала. Очевидно, что временная таблица...

10
Вывод хеша

Вопрос, возникший в чате: Я знаю, что внутреннее переключение хеш-соединения используется для создания вложенных циклов. Что делает SQL Server для восстановления совокупного хэша (если это вообще может...

9
Понимание страниц IAM: интервалы экстентов

Я читаю книгу Ицик "Запросы Microsoft SQL Server 2012", а также читаю / смотрю различные учебные материалы в Интернете. Мое намерение состоит в том, чтобы иметь полезное понимание того, как работают внутренние компоненты базы данных. У меня есть небольшое сомнение, что я не мог решить о страницах...

9
Измерение плана выселения

У нас есть SQL Server 2016 SP1 с максимальным объемом памяти 24 ГБ. Этот сервер имеет большое количество компиляций, только 10% этих компиляций являются запросами Ad-Hoc. Поэтому вновь скомпилированные планы должны храниться в кэше планов, но размер кэша планов не увеличивается (около 3,72 ГБ). Я...