Rumah > pangkalan data > tutorial mysql > Mengapa Pertanyaan SQL Server 2008 Saya dengan Ungkapan Tarikh Begitu Lambat?

Mengapa Pertanyaan SQL Server 2008 Saya dengan Ungkapan Tarikh Begitu Lambat?

DDD
Lepaskan: 2024-12-28 08:44:13
asal
655 orang telah melayarinya

Why Are My SQL Server 2008 Queries with Date Expressions So Slow?

Pengoptimuman Pertanyaan: Menangani Prestasi Pertanyaan Lambat dengan Ungkapan Tarikh

Apabila bekerja dengan SQL Server 2008, adalah penting untuk memahami kesan ungkapan tarikh pada prestasi pertanyaan. Pertimbangkan pertanyaan berikut:

Where FK.DT = CAST(DATEADD(m, DATEDIFF(m, 0, getdate()), 0) as DATE)
Salin selepas log masuk

Pertanyaan ini berjalan dengan sangat perlahan jika dibandingkan dengan versi yang lebih mudah yang menggunakan literal rentetan:

Where FK.DT = '2013-05-01'
Salin selepas log masuk

Punca Isu Prestasi

Prestasi yang perlahan disebabkan oleh pepijat dalam penganggar kardinaliti SQL Server. Pepijat menjejaskan ketepatan anggaran apabila menggunakan ungkapan tarikh yang kompleks. Dalam kes ini, ungkapan menilai hingga permulaan bulan semasa ('1786-06-01'), salah menganggar bilangan baris yang sepadan.

Penyelesaian

Untuk menangani isu prestasi, adalah disyorkan untuk menggunakan ungkapan berikut:

Where FK.DT = cast(getdate() + 1 - datepart(day, getdate()) as date)
Salin selepas log masuk

Ungkapan ini mengira hari pertama bulan semasa, memberikan anggaran kardinaliti yang lebih tepat dan meningkatkan prestasi pertanyaan dengan ketara.

Selain itu, mendayakan bendera surih 4199 boleh menyelesaikan pepijat dan memberikan anggaran kardinaliti yang lebih tepat untuk ungkapan tarikh yang kompleks. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa ini mungkin mempunyai implikasi untuk pertanyaan lain yang bergantung pada anggaran kardinaliti yang betul.

Amalan Terbaik

Untuk prestasi pertanyaan yang optimum, pertimbangkan untuk menggunakan lebih mudah ungkapan tarikh atau menggunakan literal rentetan apabila boleh. Perlu diingat bahawa ungkapan tarikh yang kompleks boleh membawa kepada kardinaliti yang salah anggaran dan pengoptimuman pertanyaan kesan.

Atas ialah kandungan terperinci Mengapa Pertanyaan SQL Server 2008 Saya dengan Ungkapan Tarikh Begitu Lambat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan