I'm trying to improve the performance of my ColdFusion 10 application by making better use of caching. I have a particular DAO/Gateway CFC that queries a particular database. I added query caching to the query in this CFC and it made a huge difference.
Since this database is outside my control for edits/updates, I need to be able to initiate flushing of the cached queries for this database only. I don't believe the built-in ColdFusion ehcache query cache allows for granular control of flushing - in CF Administrator you pretty much can only flush the entire cache.
So I figured the only solution was to create my own cache region that would be associated with just this database, and manually cache the queries into that region. Then I can flush just that region without impacting any other cached queries.
So here's my difficulty: I believe that Internally, ColdFusion caches queries using a hash of the generated SQL. I'm thinking I'll store my queries in cache with a key that hashes the input parameters. Would the built-in Hash() function be the appropriate mechanism to create cache keys that are unique for each parameter combination? Does it matter what algorithm I use with Hash()?
Thanks,
-Carl V.