Ik heb nu een aardig componentje gemaakt voor queries op een db los te laten, met van alles er op en er aan.
Nu wil ik als laatste stap caching gaan toevoegen. Connection pooling gebeurt door de driver dus dat hoef ik niet te doen, wat ik dus wel wil doen zijn queries cachen, nou komt hier het probleem, de meeste queries zijn geen probleem, zijn altijd hetzelfde, maar wat als je gebruikt maakt van parameters? Dit wil ik dus ook gaan cachen, maar nu is de vraag hoe bouw ik hier een goede key voor.
Bij een standaard sql statement kan je gewoon:
Maar als je parameters gebruikt, is query altijd hetzelfde, enkelt de parameters verschillen, zou je dan je parameter namen eerst replacen met de waarden en dan bovenstaande code weer gebruiken?
Ook ondersteund mijn db wrapper het direct uitvoeren van een command, dus er wordt nu geen sql statement gegeven, maar een command aan de functie gevoerd. Hoe kan ik deze goed opnemen in mijn cache provider?
Ik heb net even de data application block bekeken van ms. Deze gebruiken combo's van de connectie string, en het sql statement, hoe ze dus commands cachen heb ik geen idee van?
Zou ik anders een hash uit elke query moeten maken? m.b.v. base64 ofzo, maar dat gaat ook weer niet voor commands werken. Iemand een goed idee om dit te doen?
Nu wil ik als laatste stap caching gaan toevoegen. Connection pooling gebeurt door de driver dus dat hoef ik niet te doen, wat ik dus wel wil doen zijn queries cachen, nou komt hier het probleem, de meeste queries zijn geen probleem, zijn altijd hetzelfde, maar wat als je gebruikt maakt van parameters? Dit wil ik dus ook gaan cachen, maar nu is de vraag hoe bouw ik hier een goede key voor.
Bij een standaard sql statement kan je gewoon:
Visual Basic:
1
| cache(query)=QueryResult |
Maar als je parameters gebruikt, is query altijd hetzelfde, enkelt de parameters verschillen, zou je dan je parameter namen eerst replacen met de waarden en dan bovenstaande code weer gebruiken?
Ook ondersteund mijn db wrapper het direct uitvoeren van een command, dus er wordt nu geen sql statement gegeven, maar een command aan de functie gevoerd. Hoe kan ik deze goed opnemen in mijn cache provider?
Ik heb net even de data application block bekeken van ms. Deze gebruiken combo's van de connectie string, en het sql statement, hoe ze dus commands cachen heb ik geen idee van?
Zou ik anders een hash uit elke query moeten maken? m.b.v. base64 ofzo, maar dat gaat ook weer niet voor commands werken. Iemand een goed idee om dit te doen?