水平划分table

大概10年前,接到的任务是要解决一个AuditTrail表的写入性能。

performance test的时候,一晚上这个表可以长1百万行,在SQLServer归档到本地文件以后再去删除这1百万条记录,那可就太慢了。

当时Armond给的建议是把同一天的数据写入一个AuditTrail_date表,这样删除只要直接删表就可以了。

但是这样的话,report会成问题,因为都知道view是只能静态实现的,而使用不同的AuditTrail表以后,用常规的view是无法实现的。

当时在网上也搜了好几天,还在msdn上问了,看到的回答基本都是做不了,最后还是在msdn里看到有人用open_Rowset实现类似的功能,然后就改进了一下代码,最后居然还写了一句欺骗sql编译器的语句。现在回想起来真有意思。

最近看分库分表,想起来这事,原来我当时做的就是这个啊!

--------------------------- 知道的更多,不知道的也更多 ---------------------------
原文地址:https://www.cnblogs.com/mryux/p/11135033.html