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

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

4
Яка максимальна кількість локальних змінних, які можуть брати участь в операції SET?
У мене зберігається процедура, яка містить бізнес-логіку. Всередині мене є близько 1609 змінних (не питайте мене, чому саме так працює двигун). Я намагаюся до SETзмінної до зв'язаного значення всіх інших змінних. В результаті під час створення я отримую помилку: Повідомлення 8631, Рівень 17, Стан 1, Процедура XXX, Рядок РРР Внутрішня …

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

1
Високий PAGELATCH_ * і WRITELOG чекає. Вони пов'язані?
Ми спостерігаємо дуже високі типи очікування PAGELATCH_EX та PAGELATCH_SH, а також високий WRITELOG очікування. Я діагностував запит, що спричиняє очікування PAGELATCH і може усунути їх, зменшивши швидкість вставки в зайнятий кластерний первинний ключ, визначений значенням IDENTITY. Я розумію, що це явище відоме як суперечка із засувкою на останній сторінці. Однак …

2
Чому відключення кластерного індексу робить таблицю недоступною?
Коли індекс відключений, визначення залишається в системному каталозі, але більше не використовується. SQL Server не підтримує індекс (оскільки дані в таблиці змінюються), і індекс не може бути використаний для задоволення запитів. Якщо кластерний індекс вимкнено, вся таблиця стає недоступною. Чому не можна отримати доступ до даних безпосередньо з таблиці, що …

1
Хеш-агрегат
Питання, яке виникло під час обговорення в чаті: Я знаю, що хеш-приєднання вимикає перемикання внутрішньо на якусь штуку вкладених циклів. Що робить SQL Server для виклику сукупного хеш- пакету (якщо це може статися взагалі)?

3
Як SQL Server обробляє дані для запиту, коли в буферному кеші недостатньо місця?
Моє запитання полягає в тому, як SQL Server обробляє запит, який потребує залучення більшої кількості даних у кеш-пам'ять, ніж є місця? Цей запит містив би декілька приєднань, тому набір результатів не існує в такому форматі вже на диску, і йому потрібно буде зібрати результати. Але навіть після компіляції все одно …

1
Отримайте мінімальний журнал під час завантаження даних у тимчасові таблиці
Навіть прочитавши Посібник з продуктивності завантаження даних , я все ще не впевнений, чи потрібно додати підказку таблиці TABLOCK до порожньої тимчасової таблиці, визначеної кластерним індексом, щоб отримати мінімальний журнал. Очевидно, що таблиця temp створена в TempDB, який працює в простому режимі відновлення, тому я б подумав, що це ідеальний …

1
План виселення вимірювального плану
У нас є SQL Server 2016 SP1 з максимальною пам’яттю на 24 ГБ. Цей сервер має велику кількість компіляцій, лише 10% цих компіляцій - від спеціальних запитів. Отже, щойно складені плани повинні зберігатися в кеші плану, але розмір кешу плану не збільшується (приблизно 3,72 ГБ). Я підозрюю, що існує локальний …

1
Індекс Шукайте операторську вартість
Для AdventureWorks приклад запиту бази даних нижче: SELECT P.ProductID, CA.TransactionID FROM Production.Product AS P CROSS APPLY ( SELECT TOP (1) TH.TransactionID FROM Production.TransactionHistory AS TH WHERE TH.ProductID = P.ProductID ORDER BY TH.TransactionID DESC ) AS CA; Цей план показує виконання Оціночна Оператор Вартість від 0.0850383 (93%) для пошуку по індексу …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.