|
|
1
2
在这种情况下,我建议应用沃德·坎宁安的问题——扪心自问“可能最简单的事情是什么?”。 在本例中,最简单的事情可能是创建一个视图,该视图查看数据的存在状态,并进行计算和计算以生成您所关心的所有字段。现在,加载你的数据库并尝试它。够快了吗?如果是的话,很好-你做了最简单的事情,结果很好。如果不够快,很好-第一次尝试不起作用,但您已经在视图代码中映射了规则。现在,您可以继续尝试“最简单的事情”的下一个迭代——也许您可以编写一个后台任务,监视插入和更新,然后跳入重新计算标志。如果行得通的话,很好很好。如果没有,则转到下一个迭代……等等。 分享和享受。 |
|
|
2
0
我建议不要将状态设置为列名,而是使用状态id和值。例如具有ID和Value列的customer status表。 我有两种更新状态的方法。一个存储过程,它要么拥有所有的逻辑,要么调用单独的存储过程来确定每个状态。通过为每个状态求值都有一个函数,可以使所有这些动态化,然后存储的进程可以调用每个函数。第二种方法是让任何更新用户信息的存储过程调用一个存储过程来根据当前数据更新所有用户状态。这两个方法将允许您对更改的数据进行实时更新,如果您添加了新的状态,则可以调用该方法以使用新逻辑更新所有状态。 希望您对用户数据有一个更新点,例如用户更新存储过程,并且您可以在该过程中放置状态更新存储过程调用。这样还可以节省每n秒安排一个任务以更新状态的时间。 |
|
|
3
0
我要考虑的一个选项是,每个标志都由一个确定性函数支持,该函数返回给定相关数据的最新值。 但是,如果一次调用多行(例如用于报告),则该函数的性能可能不够好。所以,如果您在Oracle 11g上,可以通过添加 virtual columns (搜索“虚拟列”)到基于该函数的相关表。这个 Result Cache 功能也应该提高功能的性能。 |
|
|
Johnny T · 基于当前值的SQL合并表[重复] 1 年前 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
ojek · 如何对SQL结果进行分组和编号? 1 年前 |
|
|
senek · 如何在PL/SQL中将选择结果(列)放入数组中 1 年前 |
|
|
Sax · 规范化Google表格(第一步) 1 年前 |
|
|
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |