如何设计SQL 表格来提升查询非过往历史资料的效能?

个人正在写一个场地租借系统, 提前开放2週给人预约,
租借的过期纪录要保留起来作系统或规则改善研究,
可想像随营运时间, 历史资料会越来越多,
实际上, 使用者只会预约近2週的场地借用时段(每天有15个时段),
1年下来 52週, 只有2週要读取, 历史包袱 50 週,
2年下来 52x2=104週, 也是只有2週要读取, 历史包袱 102 週;
3年下来 52x3=156週, 也是只有2週要读取, 历史包袱 154 週;
N 年下来, 可想而知的历史包袱 (52N - 2) 週;
有率资料第1年结束, 佔比剩 4% = (2/50 )
有率资料第4年结束, 佔比剩不到 1% > (2 / 206),
何况不只一个场地项目, 光想到此就觉得糟糕了!

我有两个想法, 想问的问题是第2个想法:

我第1个想法,
我想像用 NewTable 专放2週内的资料, OldTable 专放过期资料;
写个Routine在凌晨时, 将资料从 NewTable 过期资料 搬到 OldTable.

我第2个想法, 只用1个Table,
但是多加一个 Flag 栏位, 栏位值 1 表示 New, 栏位值 0 表示 Old
虽然Flag 栏造成表格变更大,
但能对 SQL Server 是比较有效率查询!
这栏位属性要如何设置? 算是要 SQL Server 对 Flag 栏的做索引吗?


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章