使用NHibernate,我如何检查我正在执行的查询是否已经存在于查询缓存中或者不是以编程方式存在?
答案 0 :(得分:1)
看看http://msdn.microsoft.com/en-us/library/ms174283.aspx。本文有一个示例,用于检索特定查询的查询计划(在“A.从计划缓存中清除查询计划”部分):
SELECT plan_handle, st.text
FROM sys.dm_exec_cached_plans
WHERE text LIKE N'SELECT * FROM Person.Address%';
然而,这并没有集成到NHibernate中,您必须知道查询的SQL代码。
答案 1 :(得分:0)
一种简单的方法是抛出SQL事件探查器。如果您看到查询命中数据库,则它不在缓存中。