Чи SQL Server виконує запити паралельно?


10

Чи SQL Server виконує запити паралельно? Іншими словами, якщо я запускаю важкий запит, який потребує виконання 10 секунд, і одночасно запускаю інший важкий запит, який займає 10 секунд, чи дійсно другий запит почнеться через 10 секунд, або вони почнуть обидва одночасно ?


1
немає реальної відповіді, читайте про механізм об'єднання та блокування підключень

2
Більш актуально для читання про працівників SQL Server та механізму кооперативного планування IMO. Загалом відповідь на ваше запитання - «так».
Мартін Сміт

Відповіді:


14

Ви маєте на увазі "одночасно". Відповідь - так, із застереженнями, які занадто широкі для обговорення тут. Насправді вся суть RDBMS - це паралельність.

"Паралель" має точне значення в SQL Server: "один запит поширюється на більш ніж одне ядро ​​процесора".


6

Поки ваш перший запит не заблокує таблицю, необхідну у вашому другому запиті, вони працюватимуть паралельно.


5

Запити виконуються паралельно, наскільки це можливо.

База даних використовує різні блокування для читання і запису, в рядках, блоках або цілих таблицях, залежно від того, що ви робите.

Якщо один запит читається лише з таблиці, інший запит також може читатися з тієї ж таблиці одночасно. Якщо один запит оновлює деякі записи в таблиці, інший запит все ще може читати з таблиці, доки він не прочитає записів, які були заблоковані для оновлення.


2

Залежить від даних - зазвичай вони працюють паралельно, але деякі сценарії блокування можуть змусити один запит чекати іншого. Звичайно, якщо підсистема диска слабка і у вас недостатньо оперативної пам’яті, кілька запитів можуть працювати повільніше.


0

DDL (мова визначення даних) працює паралельно, як оператор SELECT
DML (Мова, змінена даними) не працює паралельно, як оператор INSERT та UPDATE


SELECT не є заявою DDL
a_horse_with_no_name

-1

Якщо ви пишете запити, як показано нижче ... він буде працювати паралельно

SET XACT_ABORT ON
Begin Try
     Begin Tran
        --Your Sql Statement
     Commit Tran
End Try
Begin Catch
    Rollback Tran
End Catch

Примітка. Ваш паралельний запит прийде в стан очікування у випадку, якщо будь-яка об'ємна вставка в таблиці

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