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

По техническим вопросам о внутренней работе движка базы данных.

35
Имеет ли значение порядок столбцов в определении таблицы?

При определении таблицы полезно упорядочить столбцы в логических группах и сами группы по назначению. Логическое упорядочение столбцов в таблице передает смысл разработчику и является элементом хорошего стиля. Это понятно. Однако неясно, оказывает ли логическое упорядочение столбцов в таблице...

35
УДАЛИТЬ ПРОТИВ TRUNCATE

Я пытаюсь получить более глубокое понимание о различиях между DELETEи TRUNCATEкомандами. Мое понимание внутренних органов идет примерно так: DELETE-> ядро ​​базы данных находит и удаляет строку из соответствующих страниц данных и всех страниц индекса, где эта строка введена. Таким образом, чем...

30
Почему сканирование выполняется быстрее, чем поиск этого предиката?

Мне удалось воспроизвести проблему производительности запросов, которую я бы назвал неожиданной. Я ищу ответ, который сосредоточен на внутренних органах. На моей машине следующий запрос выполняет сканирование кластерного индекса и занимает около 6,8 секунд процессорного времени: SELECT ID1, ID2...

27
Где статистика физически хранится в SQL Server?

Где статистика, используемая оптимизатором запросов, физически хранится в файле базы данных SQL Server и в пуле буферов? Более конкретно, есть ли способ выяснить страницы, используемые статистикой, используя DMV и / или DBCC? У меня есть книги по внутренним компонентам и SQL Server 2008 Internals,...

26
Логическое чтение отличается при доступе к одним и тем же данным большого объекта

Вот три простых теста, которые читают одни и те же данные, но сообщают об очень разных логических чтениях: Настроить Следующий скрипт создает тестовую таблицу с 100 одинаковыми строками, каждая из которых содержит столбец xml с достаточным количеством данных, чтобы обеспечить его сохранение вне...

25
Изменение столбца с NOT NULL на NULL - что происходит под капотом?

У нас есть таблица с 2,3B строк в нем. Мы хотели бы изменить столбец с NOT NULL на NULL. Столбец содержится в одном индексе (не кластерный или PK-индекс). Тип данных не меняется (это INT). Просто обнуляемость. Утверждение следующее: Alter Table dbo.Workflow Alter Column LineId Int NULL Операция...

21
Ключи хеша пробные и остаточные

Скажем, у нас есть такой запрос: select a.*,b.* from a join b on a.col1=b.col1 and len(a.col1)=10 Предполагая, что вышеупомянутый запрос использует Hash Join и имеет остаток, ключ пробника будет col1и остаток будет len(a.col1)=10. Но, просматривая другой пример, я мог видеть и зонд, и остаток как...

19
Должен ли индекс по столбцу идентификаторов быть некластеризованным?

Для таблицы со столбцом идентификаторов следует ли создавать кластерный или некластеризованный индекс PK / уникальный для столбца идентификаторов? Причина в том, что для запросов будут созданы другие индексы. Запрос, который использует некластеризованный индекс (в куче) и возвращает столбцы,...

18
Хранение некластеризованного индекса в кластерном хранилище columns

В SQL Server неуникальный некластеризованный индекс в таблице хранилища строк включает закладку базового объекта (RID или ключ кластеризации) на всех уровнях структуры некластеризованного индекса. Закладка хранится как часть ключа некластеризованного индекса на всех уровнях индекса. С другой...

18
Почему создание индекса занимает больше времени после увеличения размера столбца?

Наш поставщик изменил ширину столбцов практически для каждого столбца во всей базе данных. База данных составляет около 7 ТБ, более 9000 таблиц. Мы пытаемся создать индекс для таблицы с 5,5 миллиардами строк. До обновления вендора мы могли создать индекс за 2 часа. Теперь это занимает дни. Что они...

18
Каковы различия между листовыми и не листовыми страницами?

Я запустил несколько отчетов об использовании индекса и пытаюсь получить определение Leaf и Non-leaf . Кажется, что существуют как листовые, так и нестворчатые вставки, обновления, удаления, слияния страниц и выделения страниц. Я действительно не знаю, что это значит, или если один лучше, чем...

15
Удаление столбцов в PostgreSQL 9.6 и побочные эффекты для функций SQL с CTE

Если бы у меня была таблица с 3 столбцами - скажем, A, B и D - и мне пришлось бы ввести новую - скажем, C, чтобы заменить текущую позицию D. Я бы использовал следующий метод: Введите 2 новых столбца как C и D2. Скопируйте содержимое D в D2. Удалить D. Переименуйте D2 в D. Новый порядок будет A, B,...

15
Каковы накладные расходы для varchar (n)?

Я хотел спросить значение этого фрагмента в документации Postgres относительно varchar(n)типа: Требование к памяти для короткой строки (до 126 байт) составляет 1 байт плюс фактическая строка, которая включает пробел в случае символа. Более длинные строки имеют 4 байта служебной информации вместо 1....

14
В поисках инсайдерской информации FILESTREAM

Когда функция FILESTREAM активирована в Microsoft SQL Server 2012, SQL Server создаст «скрытый» общий ресурс в системе. Доля определяется следующим образом: Sharename FILESTREAM_SHARE Path \\?\GLOBALROOT\Device\RsFx0320\<localmachine>\FILESTREAM_SHARE Remark SQL Server FILESTREAM share...

14
Почему MySQL позволяет HAVING использовать псевдонимы SELECT?

Насколько мне известно, в SQL логический порядок обработки запросов, который является концептуальным порядком интерпретации, начинается с FROM следующим образом: ИЗ ГДЕ ГРУППА ПО HAVING ВЫБРАТЬ СОРТИРОВАТЬ ПО Из этого списка легко понять, почему в предложении WHERE нельзя использовать псевдонимы...

14
Индекс уникальности накладных расходов

В моем офисе ведутся постоянные дебаты о стоимости индекса, а также о том, является ли уникальность выгодной или дорогой (вероятно, и то и другое). Суть проблемы - наши конкурирующие ресурсы. Фон Ранее я читал обсуждение, в котором говорилось, что Uniqueиндекс не требует дополнительных затрат на...

14
Почему временная таблица является более эффективным решением проблемы Хэллоуина, чем энергичная шпуля?

Рассмотрим следующий запрос, который вставляет строки из исходной таблицы, только если их еще нет в целевой таблице: INSERT INTO dbo.HALLOWEEN_IS_COMING_EARLY_THIS_YEAR WITH (TABLOCK) SELECT maybe_new_rows.ID FROM dbo.A_HEAP_OF_MOSTLY_NEW_ROWS maybe_new_rows WHERE NOT EXISTS ( SELECT 1 FROM...

14
Оценка мощности вне гистограммы

Настроить У меня возникли проблемы с пониманием оценки количества элементов. Вот моя тестовая установка: версия базы данных Stack Overflow 2010 года SQL Server 2017 CU15 + GDR (KB4505225) - 14.0.3192.2 новый CE (уровень совместимости 140) У меня есть этот процесс: USE StackOverflow2010; GO CREATE...

13
Что позволяет SQL Server обменивать имя объекта на строку, переданную системной процедуре

Что делает законным передачу имени объекта системной хранимой процедуре sp_helptext? Какой механизм преобразует имя объекта в строку? например -- works sp_helptext myproc sp_helptext [myproc] sp_helptext [dbo.myproc] -- and behaves the same as a string sp_helptext 'myproc' sp_helptext 'dbo.myproc'...