Pertanyaan yang diberi tag «optimization»

Dalam konteks database, optimisasi mengacu pada proses optimizer kueri memilih rencana eksekusi fisik yang efisien.


1
Kapan predikat SARGable dapat didorong ke CTE atau tabel turunan?
Memaksakan Ketika bekerja pada Top Quality Blog Posts®, saya datang di beberapa perilaku optimizer saya menemukan benar-benar menyebalkan menarik. Saya tidak segera memiliki penjelasan, setidaknya bukan yang saya senangi, jadi saya taruh di sini kalau-kalau ada orang pintar yang muncul. Jika Anda ingin mengikuti, Anda dapat mengambil versi 2013 dari …

2
Gabung permintaan yang membutuhkan waktu 11 menit untuk berjalan di 300.000 baris tabel
Query di bawah ini membutuhkan waktu lebih dari 11 menit untuk dieksekusi. SELECT `c`.*, `e`.`name` AS `employee_name`, `e`.`emp_no`, `d`.`code` AS `department_code`, IF(ew.code IS NOT NULL, ew.code, egw.code) AS shift_code, IF(ew.code IS NOT NULL, ew.time_in_from, egw.time_in_from) AS time_in_from, IF(ew.code IS NOT NULL, ew.time_out_to, egw.time_out_to) AS time_out_to, IF(ew.code IS NOT NULL, ew.next_day, …

3
Mengapa permintaan EXISTS saya melakukan pemindaian indeks alih-alih pencarian indeks?
Saya sedang berupaya mengoptimalkan beberapa pertanyaan. Untuk kueri di bawah ini, SET STATISTICS IO ON; DECLARE @OrderStartDate DATETIME2 = '27 feb 2016'; DECLARE @OrderEndDate DATETIME2 = '28 feb 2016'; SELECT o.strBxOrderNo , o.sintOrderStatusID , o.sintOrderChannelID , o.sintOrderTypeID , o.sdtmOrdCreated , o.sintMarketID , o.strOrderKey , o.strOfferCode , o.strCurrencyCode , o.decBCShipFullPrice , …



2
Indeks pada kolom yang dihitung tetap tidak dapat dicari
Saya punya tabel, dipanggil Address, yang memiliki kolom yang dihitung tetap disebut Hashkey. Kolom bersifat deterministik tetapi tidak tepat. Ini memiliki indeks unik di atasnya yang tidak dapat dicari. Jika saya menjalankan kueri ini, mengembalikan kunci utama: SELECT @ADDRESSID= ISNULL(AddressId,0) FROM dbo.[Address] WHERE HashKey = @HashKey Saya mendapatkan rencana ini: …


3
Indeks untuk query SQL dengan kondisi WHERE dan GROUP BY
Saya mencoba menentukan indeks mana yang akan digunakan untuk permintaan SQL dengan WHEREkondisi dan GROUP BYyang saat ini berjalan sangat lambat. Permintaan saya: SELECT group_id FROM counter WHERE ts between timestamp '2014-03-02 00:00:00.0' and timestamp '2014-03-05 12:00:00.0' GROUP BY group_id Tabel saat ini memiliki 32.000.000 baris. Waktu eksekusi permintaan meningkat …

3
Mengoptimalkan hierarki CTE
Perbarui di bawah ini Saya memiliki daftar akun dengan arsitektur akun khusus akun induk / orang tua untuk mewakili hierarki akun (SQL Server 2012). Saya membuat VIEW menggunakan CTE untuk memilah-milah hierarki, dan secara keseluruhan itu bekerja dengan indah, dan sebagaimana dimaksud. Saya dapat meminta hierarki di tingkat mana pun, …


3
Mengapa ada perbedaan rencana eksekusi antara OFFSET ... FETCH dan skema ROW_NUMBER gaya lama?
Model baru OFFSET ... FETCHyang diperkenalkan dengan SQL Server 2012 menawarkan paging yang sederhana dan lebih cepat. Mengapa ada perbedaan sama sekali mengingat kedua bentuk itu secara semantik identik dan sangat umum? Orang akan berasumsi bahwa optimizer mengenali keduanya dan mengoptimalkannya (sepele) sepenuhnya. Berikut ini adalah kasus yang sangat sederhana …

1
Mengapa Indeks Pemindaian Clustered Jumlah Eksekusi begitu tinggi?
Saya memiliki dua pertanyaan serupa yang menghasilkan rencana kueri yang sama, kecuali bahwa satu rencana kueri menjalankan Pemindaian Indeks Cluster 1316 kali, sedangkan yang lainnya mengeksekusi 1 kali. Satu-satunya perbedaan antara dua kueri adalah kriteria tanggal yang berbeda. Permintaan yang berjalan lama sebenarnya kriteria tanggal yang lebih sempit, dan menarik …

2
"Menyalin ke tabel tmp" sangat lambat
Ini adalah contoh permintaan saya: SELECT nickname, CASE class_id WHEN 1 THEN 'Druid' WHEN 2 THEN 'Necromancer' WHEN 3 THEN 'Mage' WHEN 4 THEN 'Priest' WHEN 5 THEN 'Warrior' WHEN 6 THEN 'Stalker' WHEN 7 THEN 'Paladin' WHEN 8 THEN 'Psionic' END class_name, ROUND(AVG(level),2) level, ROUND(AVG(tabard_id),2) tabard, CASE rank_id WHEN …

2
Pengoptimalan: Memindahkan deklarasi variabel ke atas prosedur Anda
Ketika bekerja untuk mengoptimalkan beberapa prosedur tersimpan, saya duduk dengan DBA dan menjalani beberapa prosedur tersimpan dengan pemblokiran tinggi dan / atau aktivitas baca / tulis tinggi. Satu hal yang disebutkan DBA adalah saya harus mendeklarasikan semua variabel (terutama TABLEyang) di bagian atas prosedur tersimpan untuk menghindari kompilasi ulang. Ini …

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.