Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Jumlah Inti Kerangka Entitas tidak memiliki kinerja yang optimal

Tidak banyak yang bisa dijawab di sini. Jika alat ORM Anda tidak menghasilkan kueri SQL yang diharapkan dari kueri LINQ sederhana, Anda tidak dapat membiarkannya melakukannya dengan menulis ulang kueri (dan Anda seharusnya tidak melakukannya sejak awal).

EF Core memiliki konsep evaluasi klien/database campuran dalam kueri LINQ yang memungkinkan mereka merilis versi EF Core dengan pemrosesan kueri yang tidak lengkap/sangat tidak efisien seperti dalam kasus Anda.

Kutipan dari Fitur yang tidak ada di EF Core (perhatikan kata tidak ) dan Peta Jalan :

Tidak lama lagi, mereka berencana untuk meningkatkan pemrosesan kueri, tetapi kami tidak tahu kapan itu akan terjadi dan tingkat derajat apa (ingat mode campuran memungkinkan mereka untuk mempertimbangkan kueri "berfungsi").

Jadi apa saja pilihannya?

  • Pertama, jauhi EF Core sampai benar-benar berguna. Kembali ke EF6, tidak ada masalah seperti itu.
  • Jika Anda tidak dapat menggunakan EF6, tetap perbarui dengan versi EF Core terbaru.

Misalnya, di v1.0.1 dan v1.1.0 kueri Anda menghasilkan SQL yang dimaksud (diuji), sehingga Anda dapat dengan mudah memutakhirkan dan masalah konkret akan hilang.

Namun perhatikan bahwa seiring dengan peningkatan, rilis baru memperkenalkan bug/regresi (seperti yang Anda lihat di sini EFCore mengembalikan terlalu banyak kolom untuk gabungan LEFT OUTER sederhana misalnya), jadi lakukan itu dengan risiko Anda sendiri (dan pertimbangkan opsi pertama lagi, yaitu Mana yang Tepat untuk Anda :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. T-SQL datetime dibulatkan ke menit terdekat dan jam terdekat dengan menggunakan fungsi

  2. Cara membagi nilai yang dipisahkan koma ke kolom

  3. Kerangka kerja entitas sangat lambat dimuat untuk pertama kalinya setelah setiap kompilasi

  4. Kesalahan CTE:Jenis tidak cocok antara jangkar dan bagian rekursif

  5. SQL Server CTE dan contoh rekursi