|
0
|
| Jon Ericson Homunculus Reticulli · 技术社区 · 17 年前 |
|
|
1
2
我会非常警惕任何试图让数据库缓存所有查询结果的事情——这很可能会导致大量额外的工作,为90%的查询维护结果缓存,而这些查询不会受益。Oracle的缓存失效算法非常基本,旨在确保永远不会返回过时的结果,所以对底层表的任何更改都会强制从该表派生的所有结果缓存失效。假设您的大多数查询都是以一定的频率访问更改的表,那么这可能不值得开销。 你真的只想缓存以下结果 -运行成本很高(否则,缓存结果而不是像Oracle已经做的那样只在缓冲区缓存中缓存数据的边际效益很小。缓存单行主键查找可能永远不值得) -在一段合理的时间内保持不变(确保其他人可以使用缓存) -大多数是静态的引用表(确保在对表执行DML时,不必花费大量时间使缓存结果无效) |
|
|
2
1
我们的第一次(也是非常初步的)测试显示了相当大的前景。由于我们正在测试的查询上的缓存命中可以避免全表扫描(约350万行),因此即使是少量命中也很容易使缓存变得有价值。 到目前为止,我们只做了一个查询,这似乎相当安全。我想将数据库设置为缓存所有结果,但这可能风险更大。 |
|
|
3
1
在RAC环境中,我总是看到返回值在同一实例上有效, 但是,当将其用于频繁更新表数据的函数时,我们抱怨说,当在与进行更新的实例不同的实例上调用函数时,值会过时。 |
|
|
maddy · 如何根据oracle SQL中的某一列值进行排名 2 年前 |
|
|
kiric8494 · 显示以元音开头和结尾的城市名称 3 年前 |
|
|
Franz Biberkopf · Oracle:组合子查询和聚合函数 3 年前 |
|
|
BitLauncher · 甲骨文-如何模拟位列和布尔和/或? 3 年前 |
|
|
Arifullah · 如何从oracle中的列中删除特定的初始字符? 3 年前 |
|
|
Anar · Oracle SQL用户定义函数 3 年前 |
|
|
user1312312 · 如何为一组表编写通用触发器? 3 年前 |