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

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

1
УДАЛИТЬ ПРОТИВ TRUNCATE
Я пытаюсь получить более глубокое понимание о различиях между DELETEи TRUNCATEкомандами. Мое понимание внутренних органов идет примерно так: DELETE-> ядро ​​базы данных находит и удаляет строку из соответствующих страниц данных и всех страниц индекса, где эта строка введена. Таким образом, чем больше индексов, тем больше времени занимает удаление. TRUNCATE -> …

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

2
Оптимизация планов с помощью XML-ридеров
Выполнение запроса отсюда, чтобы извлечь тупиковые события из сеанса расширенных событий по умолчанию SELECT CAST ( REPLACE ( REPLACE ( XEventData.XEvent.value ('(data/value)[1]', 'varchar(max)'), '<victim-list>', '<deadlock><victim-list>'), '<process-list>', '</victim-list><process-list>') AS XML) AS DeadlockGraph FROM (SELECT CAST (target_data AS XML) AS TargetData FROM sys.dm_xe_session_targets st JOIN sys.dm_xe_sessions s ON s.address = st.event_session_address WHERE …

1
Почему сканирование выполняется быстрее, чем поиск этого предиката?
Мне удалось воспроизвести проблему производительности запросов, которую я бы назвал неожиданной. Я ищу ответ, который сосредоточен на внутренних органах. На моей машине следующий запрос выполняет сканирование кластерного индекса и занимает около 6,8 секунд процессорного времени: SELECT ID1, ID2 FROM two_col_key_test WITH (FORCESCAN) WHERE ID1 NOT IN ( N'1', N'2',N'3', N'4', …

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

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

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

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

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

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

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

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

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.