Как база данных SQL обрабатывает одновременные запросы?

Вы могли бы хотеть проверить Вычисления Масштаба. У них есть решение для кластерной системы хранения, которое сделает iSCSI, NFS и CIFS одновременно. Низкопроизводительным является кластер на 3 ТБ, и можно масштабировать его 1 или 2 ТБ за один раз до чего-то как 2PB.

1
задан 8 December 2009 в 00:22
2 ответа

Существует много различных ресурсов, которые используются для предоставления услуги базы данных (ЦП, записи на диске, ячейках памяти, и т.д.), и любое время, там конкуренция, да, все, что должно использовать тот ресурс, входит в строку. Каждый раз, когда нет конкуренции (два потока в многоядерной системе, пытаясь получить доступ к различным записям в таблице) затем, те запросы могут продолжиться параллельно, пока они не борются за некоторый ресурс снова.

0
ответ дан 4 December 2019 в 02:18

Внутренности выполнения описаны распространение через несколько тем в MSDN

Также блог Slava, начиная с SQLOS - развязанный имеет большую информацию.

Для понимания основных принципов хорошей начальной точкой является Обработка транзакций: Понятия и Методы.

Короткий синтез пошел бы как это: каждый пакет SQL создает запрос. Запросы взяты задачей, и задачи выполняются рабочим. Можно думать в рабочих как подобные 'потокам' (существуют некоторые различия). Это подразумевает, что пакет (=request) работает на единственном потоке. Определенные операторы в пакете могут извлечь выгоду из параллельного выполнения, те операторы выполнятся на нескольких задачах, видеть, что Параллельный запрос Обрабатывает.

Чтобы ответить, принесут ли несколько центральных процессоров пользу базе данных: это зависит. Я сказал бы, что "добавление центральных процессоров к связанной рабочей нагрузке процессора увеличит пропускную способность рабочей нагрузки и производительность".

1
ответ дан 4 December 2019 в 02:18

Теги

Похожие вопросы