NHibernate ja sp_execsql
23.05.2007 | GunnarBilly McCafferty jagab oma blogis head nõu NHibernate-i jõudluse parandamiseks andmebaasidega, kus koormus on võrreldes tavaliste rahulike veebikeste ja intranetidega suhteliselt äärmuslik. See trikk ei puutugi ehk otseselt niiväga NHibernate-i kuivõrd hoopis SQL Serverit.
NHibernate laseb SQL Serveril päringud ettevalmistada SQL Serveri protseduuril sp_execsql. See protseduur võib osutuda pudelikaelaks, mille annab kõrvaldada NHibernate-i konfiguratsiooni muutes. Nimelt töötab sp_execsql palju kiiremini, kui tabelite ja muude päringus esinevate andmebaasiobjekti nimede juures on ka öeldud andmebaas ja schema, kuhu vastavad objektid kuuluvad.
Ehk siis selliselt
SELECT person_id, first_name, last_name FROM person
-- kiire
SELECT person_id, first_name, last_name FROM mydb.dbo.person
Selleks, et NHibernate tabelite nimede ette andmebaasi ja schema lisaks, peame konfiguratsiooni lisama sellise rea:
Hinnanguliselt on jõudlusekasvu Billy hinnangul oodata 30% või rohkemgi.
