Penurunan kinerja ketika Anda menjalankan pilih. KE permintaan setelah Anda meningkatkan ke SQL Server 2012 dan yang lebih baru

PENTING: Artikel ini diterjemahkan oleh perangkat lunak penerjemahan mesin Microsoft, dan mungkin telah diedit oleh Masyarakat Microsoft melalui teknologi CTF dan bukan oleh seorang penerjemah profesional. Microsoft menawarkan baik artikel yang diterjemahkan oleh manusia maupun artikel hasil editan terjemahan oleh mesin/komunitas, sehingga Anda dapat mengakses semua artikel di Sentra Pengetahuan yang kami miliki dalam berbagai bahasa. Namun artikel hasil editan mesin atau bahkan komunitas tidak selalu sempurna. Artikel ini dapat mengandung kesalahan dalam hal kosa kata, sintaksis atau tatabahasa, sangat mirip dengan penutur asing yang membuat kekeliruan ketika berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab atas ketidakakuratan, kesalahan atau kerugian apa pun akibat dari kekeliruan dalam penerjemahan isi atau penggunaannya oleh pelanggan kami. Microsoft juga akan senantiasa memperbarui perangkat lunak penerjemahan mesin dan alat untuk menyempurnakan Editan Hasil Penerjemahan Mesin.

Klik disini untuk melihat versi Inggris dari artikel ini: 3144525
Gejala
Setelah Anda meng-upgrade dari Microsoft SQL Server 2008 R2 atau versi yang lebih lawas ke SQL Server 2012 atau versi yang lebih baru, Anda mungkin melihat bahwapilih... KE permintaan yang berisi fungsi yang ditetapkan pengguna membutuhkan waktu lama untuk menyelesaikan daripada versi sebelumnya.
Penyebab
Masalah ini terjadi karena yang memilih. KE pernyataan yang berisi fungsi yang ditetapkan pengguna (UDFs) tidak sepenuhnya log operasi dan memerlukan tambahan waktu untuk menyelesaikan di SQL Server 2012 dan versi yang lebih baru.

Catatan Pilih apa pun. KE pernyataan yang berisi fungsi yang ditetapkan pengguna yang minimal log operasi di versi sebelumnya (SQL Server 2008 R2 dan sebelumnya). Perubahan ini diperkenalkan untuk memastikan bahwa integritas data, seperti fungsi yang ditetapkan pengguna dapat melakukan operasi baca/tulis pada objek yang sama dan dapat menyebabkan kerusakan data jika minimal pencatatan diaktifkan.
Teknik pemecahan masalah
Apabila memilih fungsi yang ditetapkan pengguna yang digunakan dalam ... KE pernyataan tidak melakukan operasi akses data apa pun, Anda dapat menentukan klausa SCHEMABINDING untuk fungsi yang ditetapkan pengguna, yang akan menetapkan properti UserDataAccess yang diperoleh untuk fungsi yang ditetapkan pengguna tersebut ke 0. Setelah perubahan ini, pilih... KE pernyataan akan minimal dicatat. Untuk informasi selengkapnya, lihat contoh di blog misalnya menggunakan SCHEMABINDING.

Catatan Jika pernyataan masih referensi sekurangnya satu fungsi ditetapkan pengguna yang memiliki properti ini disetel ke 1, operasi sepenuhnya dicatat.
Informasi lebih lanjut
Kode contoh berikut ini menunjukkan perbedaan dalam perilaku SQL Server 2008 R2 dan SQL Server 2012 atau 2014:

create database DB1gouse DB1gocreate function dbo.MyTrim (@name as varchar(100))returns varchar (100)asbeginreturn (RTRIM(ltrim(@name)))endgocreate table dbo.tab_prod (c1 int, c2 varchar(10))godeclare @a int set @a = 1while @a <= 100000begin insert into tab_prodvalues (@a , '  test ')set @a = @a + 1endbegin transelect  *,  dbo.mytrim(c2) as trimc2 into tab_test from tab_prod

Daftar Tabel berikut ini membandingkan waktu CPU untuk memilih ke operasi dalam SQL Server 2008 R2 dengan SQL Server 2014:

VersiWaktu eksekusi (waktu CPU)
SQL Server 2008 R2719 ms
SQL Server 20141360 ms

Daftar Tabel berikut ini membandingkan penggunaan log transaksi untuk memilih ke operasi dalam SQL Server 2008 R2 dengan SQL Server 2014:

VersiNama databaseUkuran log (MB)Log ruang digunakan (%)Status
SQL Server 2008 R2DB10.742187551.578950
SQL Server 2014DB132.1796938.44380
Catatan penting Hasil dalam Daftar Tabel ini adalah contoh dari perubahan dalam perilaku antara SQL Server 2008 R2 dan SQL Server 2014 dan sangat khusus untuk lingkungan lab yang digunakan untuk pengujian. Perbedaan kinerja aktual di lingkungan Anda tergantung pada peranti penangkap keras yang contoh SQL yang dijalankan di.
Catatan Ini merupakan artikel "FAST PUBLISH" dibuat langsung dari organisasi pendukung Microsoft. Informasi yang termuat di dalamnya disediakan apa adanya sebagai respons atas masalah yang muncul. Sebagai akibat dari pembuatan informasi yang cepat ini, mungkin terdapat kesalahan ketik dan dapat direvisi setiap saat tanpa pemberitahuan. Lihat Syarat Penggunaan untuk pertimbangan lainnya.

Peringatan: Artikel ini telah diterjemahkan secara otomatis

Properti

ID Artikel: 3144525 - Tinjauan Terakhir: 03/03/2016 22:40:00 - Revisi: 1.0

Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Workgroup Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Web, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup

  • kbsurveynew kbtshoot kbexpertiseadvanced kbmt KB3144525 KbMtid
Tanggapan