要每次查询数据库并使用“WHERE”运算符?
SELECT * FROM tblProduct WHERE productID = @productID
或
要过滤放入缓存的产品列表?
DataTable dtProducts = new DataTable();
dtProducts = HttpContext.Current.Cache["CachedProductList"] as DataTable;
DataView dvProduct = new DataView();
dvProduct = dtProducts.DefaultView;
dvProduct.RowFilter = String.Format("[productID] = {0}", iProductID);
请分享您的意见。提前致谢。
性能对您的数据及其使用方式非常主观。确定什么有效的方法是进行基准测试。
仅当您的数据库性能不满足您要求的性能时才决定缓存。
当你缓存数据时,你会增加很多开销来确保它是最新的。
Sql server 不会在您每次触发查询时从磁盘读取,它会缓存频繁查询的结果。在决定缓存之前,请了解 caching mechanisms由您的数据库使用。使用存储过程可以让您 cache the query plan也是。
我是一名优秀的程序员,十分优秀!