Apakah SQL Server menjalankan kueri secara paralel? Dengan kata lain, jika saya menjalankan kueri berat yang membutuhkan 10 detik untuk mengeksekusi, dan pada saat yang sama memulai kueri berat lain yang membutuhkan 10 detik, akankah kueri kedua benar-benar mulai setelah 10 detik, atau apakah mereka memulai keduanya pada waktu yang sama ?
sql-server
pengguna369117
sumber
sumber
Jawaban:
Maksudmu "bersamaan". Jawabannya adalah ya, dengan peringatan yang terlalu luas untuk dibahas di sini. Faktanya, inti dari RDBMS adalah konkurensi.
"Paralel" memiliki makna yang tepat dalam SQL Server: "satu permintaan didistribusikan lebih dari satu inti prosesor".
sumber
Selama kueri pertama Anda tidak mengunci tabel yang dibutuhkan dalam kueri kedua Anda, mereka akan berjalan secara paralel.
sumber
Pertanyaan berjalan paralel, sejauh mungkin.
Basis data menggunakan kunci berbeda untuk membaca dan menulis, pada baris, blok atau seluruh tabel, tergantung pada apa yang Anda lakukan.
Jika satu kueri hanya membaca dari tabel, kueri lain juga dapat membaca dari tabel yang sama secara bersamaan. Jika satu kueri memperbarui beberapa catatan dalam sebuah tabel, kueri lain mungkin masih dapat membaca dari tabel selama itu tidak membaca catatan apa pun yang dikunci untuk pembaruan.
sumber
Bergantung pada data - biasanya berjalan paralel, tetapi beberapa skenario penguncian dapat menyebabkan satu permintaan menunggu yang lain. Tentu saja jika subsistem disk lemah dan Anda tidak memiliki banyak RAM, beberapa kueri dapat berjalan lebih lambat.
sumber
DDL (bahasa definisi data) bekerja paralel seperti pernyataan SELECT
DML (Bahasa yang dimodifikasi data) tidak berfungsi paralel seperti pernyataan INSERT dan UPDATE
sumber
Jika Anda menulis pertanyaan seperti di bawah ini ... itu akan berjalan secara paralel
Catatan - Kueri paralel Anda akan datang dalam kondisi menunggu seandainya ada insert massal dalam sebuah tabel
sumber