Запитання з тегом «database-internals»

З технічних питань щодо внутрішньої роботи двигуна бази даних.

1
DELETE vs 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 = …

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 сервері?
Де статистичні дані, використовувані Оптимізатором запитів, фізично зберігаються у файлі бази даних SQL Server та в буферному пулі? Більш конкретно, чи є спосіб визначити сторінки, що використовуються статистикою, використовуючи DMV та / або DBCC? Я володію і внутрішніми службами SQL Server 2008, і внутрішніми та усуненнями неполадок SQL Server, і …

1
Логічне зчитування відрізняється під час доступу до одних і тих же даних LOB
Ось три прості тести, які читають однакові дані, але повідомляють про дуже різні логічні зчитування: Налаштування Наступний скрипт створює тестову таблицю зі 100 однаковими рядками, кожен з яких містить стовпчик xml з достатньою кількістю даних, щоб забезпечити її збереження поза рядками. У моїй тестовій базі даних довжина генерованого 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
Чи повинен індекс у стовпці ідентифікації не бути кластеризованим?
Чи слід створювати кластерний або некластеризований ПК / унікальний індекс для стовпця ідентичності для таблиці з стовпцем ідентичності? Причина в тому, що для запитів будуть створені інші індекси. Запит, який використовує некластеризований індекс (на купі) і повертає стовпці, не охоплені індексом, використовуватиме менш логічний введення / виведення (LIO), оскільки немає …

2
Чому після збільшення розміру стовпця потрібно більше часу створювати індекс?
Наш постачальник змінив ширину стовпців майже на кожному стовпчику всієї бази даних. База даних становить близько 7 ТБ, 9000+ таблиць. Ми намагаємось створити індекс на таблиці, яка містить 5,5 мільярдів рядків. Перед оновленням постачальника ми могли створити індекс за 2 години. Зараз це займає дні. Що вони зробили, це збільшити …

2
У чому полягають відмінності між листовими та не листковими сторінками?
Я працював з деякими звітами про використання індексу, і намагаюся дати визначення Leaf та Non-leaf . Здається, є як вставки, так і листи, що не містять листя, оновлення, видалення, об'єднання сторінок і розміщення сторінок. Я дійсно не знаю, що це означає, або якщо один кращий за інший. Якби хтось міг …

1
Некластерне зберігання індексу на кластерному стовпчику
У SQL Server не унікальний некластеризований індекс у таблиці зберігання рядків містить закладку базового об’єкта (RID або кластерний ключ) на всіх рівнях структури некластеризованого індексу. Закладка зберігається як частина некластеризованого індексного ключа на всіх рівнях індексу. З іншого боку, якщо некластеризований індекс є унікальним , закладка присутня лише на рівні …

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

1
Що таке накладні витрати для varchar (n)?
Я хотів запитати значення цього фрагмента у doc Postgres щодо varchar(n)типу: Вимога зберігання для короткого рядка (до 126 байт) становить 1 байт плюс фактичний рядок, який включає пробіл у випадку символів. Більш довгі рядки мають 4 байти накладних, а не 1. Припустимо, що у мене є varchar(255)поле. А тепер наступні …

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.