我有一个表格,保存一个系统的性能数据,每个记录都是对一些重要方法发出的呼吁,包括方法名称、期限和象征性的——对该系统的每一请求都是独特的象征性的,因此,所有有相同标语的记录都是相同的要求,例如:
CallName Duration Token
----------- ----------- -----------
GetData 121 12345
Process 800 12345
SaveData 87 12345
GetData 97 ABCDE
Process 652 ABCDE
SaveData 101 ABCDE
我有兴趣了解图肯和卡塔尼亚美分类的总数据,例如:
-- The total duration of each request, in descending order
SELECT Token, SUM(Duration) FROM Requests GROUP BY Token ORDER BY SUM(Duration) DESC
-- The average duration of each call, in descending order
SELECT CallName, AVG(Duration) FROM Requests GROUP BY CallName ORDER BY AVG(Duration) DESC
现在,这个表格可能非常庞大,我只想对每个询问的最少记录感兴趣,因此,我已经为这两个问题铺了。 问题在于,由于这些询问涉及的是总的职能服务器,最终完成一个表扫描。
肯定还有其他人有这一问题?
我在此确实需要的是由Token归类的SUM(Duration)“指数”,即我可以做以下事情的表格:
SELECT Token, SumToken FROM RequestTokens ORDER BY SumToken DESC
- Is this a really bad idea?
- If so, is there a better way?
- What would be the best way to do this? Would triggers on INSERT / UPDATE / DELETE work (where I update the aggregate values based on the old values and the changed data), or would I be better off manually updating my "index" when updating this table?
捷径是我迄今提出的最佳解决办法,但我已经看到这是一个僵局/一致性的 night! :