Sql 满足我的需求的最佳方法

Sql 满足我的需求的最佳方法,sql,sql-server-2008,Sql,Sql Server 2008,我有表A和表B,表c 表A 援助AC1 AC2 123.34 表B 投标编号BC1 BC2 134.56 表C Cid CC1 CC2 一, AC2和BC2是派生值,总是会发生变化。 CC1是总和AC1*AC2,CC2=总和BC1*BC2 在我的UI中,我需要显示所有这些表中的计算值。如果用户喜欢保存,我需要锁定值并保存AC2、BC2、CC1、CC2。我们计划使用视图进行保存,但视图速度非常慢。什么是替代方法?您只需要使用索引,就可以获得更快的视图。 在GROUPBY语句、ORDERBY语句或条

我有表A和表B,表c 表A

援助AC1 AC2

123.34

表B

投标编号BC1 BC2

134.56

表C

Cid CC1 CC2

一,

AC2和BC2是派生值,总是会发生变化。 CC1是总和AC1*AC2,CC2=总和BC1*BC2
在我的UI中,我需要显示所有这些表中的计算值。如果用户喜欢保存,我需要锁定值并保存AC2、BC2、CC1、CC2。我们计划使用视图进行保存,但视图速度非常慢。什么是替代方法?

您只需要使用索引,就可以获得更快的视图。 在GROUPBY语句、ORDERBY语句或条件中显示的每一列在索引时都会使视图速度更快。 如果您有如下表达式: 选择 其中A=。。。 B组 C.订购


那么你最好建立A、B和C索引

视图太复杂了,应该在哪些列上创建索引?另一种方法是规范化数据库。如果你不知道这意味着什么,我听说过这本书的好东西,《为凡人设计数据库》。如果你想知道我为什么提到这一点,你不知道这是什么意思。但是视图速度非常慢,这是完全不准确的。视图只是存储在数据库中的查询,其运行方式与任何其他查询相同,性能与普通查询相同。当然,由于索引不好、过滤不正确或硬件不好而导致的查询速度慢,也会被压缩到同样慢的视图中。