.

NHibernate ja sp_execsql

23.05.2007  |  Gunnar

Billy 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

-- aeglane
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:

<add key=“hibernate.default_schema“ value=mydb.dbo“ />

Hinnanguliselt on jõudlusekasvu Billy hinnangul oodata 30% või rohkemgi.

Kommenteeri

sulge
Saada link e-postiga

© DT 2006-2008 | Creative Commons Attribution-Noncommercial 3.0 License | WordPress