Kita tahu bahwa struktur memo dipangkas dan beberapa rencana alternatif yang mahal dibuang selama optimasi. Saya bertanya-tanya apakah ada cara untuk mencegah hal ini dan membiarkan pengoptimal hanya mempertimbangkan setiap rencana yang mungkin dan memilih yang terbaik dari semua alternatif?
Memang ada, tapi saya tidak mempublikasikannya karena itu akan disalahpahami dan disalahgunakan. Dalam kasus apa pun, ini tidak akan menghasilkan pencarian menyeluruh dari ruang rencana karena hanya serangkaian transformasi terbatas (yang biasanya menghasilkan hasil yang baik) yang diimplementasikan.
Mencegah pemangkasan dan pembuangan umumnya hanya akan menghasilkan waktu kompilasi lebih lama tanpa banyak peningkatan kualitas rencana akhir, jika ada.
Pada akhirnya, pertanyaan itu wajar dan masuk akal, tetapi didasarkan pada kesalahpahaman tujuan pengoptimal permintaan SQL Server: ia dirancang untuk menemukan rencana yang baik untuk pertanyaan umum dengan cepat. Itu tidak dibangun di atas kerangka kerja yang dirancang untuk pencarian lengkap.
Jika Anda memiliki situasi dunia nyata yang akan mendapat manfaat dari pendekatan yang berbeda untuk optimasi, Anda dapat membuat kasus untuk itu di situs web Connect (meskipun saya pikir itu tidak mungkin Microsoft akan menginvestasikan sumber daya teknik yang diperlukan).