首先确定使用冗余的最需操作是那些,其次明确这些操作的使用环境,再怎样的情况下使用,最后确定这些操作都需要用到怎样的Sql语句,一句还是多句。
1、对于一个操作可能会有1个语句和两条语句.或多个语句。
2、两条语句的查询时间>= 一条语句
>用asp。net变量做中间变量
=用事务或存储过程,用SQL变量来存储中间变量
3、查询效率分析
点查询 —>有索引的情况,找一条,效率最高。数据库会使用数据结构的折半查找等方法。
集合查询----> 从4万条中找出若干条。(连续或者不连续),聚簇索引。查询效率在点查询和遍历查询之间。
遍历查询----> 时间慢。例如like语句,需要遍历
对于效率高的不需要再分析下边情况,说明不需要用冗余。
对于复杂的,效率不高的,需要继续根据以下流程进行分析。
4、分为用户所能容忍的时间、使用对象、使用频率
所能容忍的时间:
例如:1、1年使用一次的汇总,对于用户来说,可以容忍这个操作执行时间长。
、对于像有些界面上边的Tree型控件的各内容的快速切换,执行时间要短,可行也就允许几毫秒时间。
3、输入文本,或者一些信息,点保存,这个操作的时间可以允许有个1到2秒时间。
使用对象:
Session里边
管理者点学生:
使用频率:1、整体频率(同一时间有多少人进行此操作)
可以大致估算。可能对于同一件事在不同时间有不同的整体频率
例如通知,若是学校通知,或者院级通知或者系级通知的整体频率是不一样的。
5、设计冗余。
有两种方法:
① 在数据库中空间换去时间。
比如设计冗余表的方法。
② Net空间换取时间。即将经常查询的信息存入变量中
此方法有有三种:
1、普通变量。
2、Session值中。
3、Application集合中。
application集合。因为他会在使用时给application变量加锁。