大概10年前,接到的任务是要解决一个AuditTrail表的写入性能。
performance test的时候,一晚上这个表可以长1百万行,在SQLServer归档到本地文件以后再去删除这1百万条记录,那可就太慢了。
当时Armond给的建议是把同一天的数据写入一个AuditTrail_date表,这样删除只要直接删表就可以了。
但是这样的话,report会成问题,因为都知道view是只能静态实现的,而使用不同的AuditTrail表以后,用常规的view是无法实现的。
当时在网上也搜了好几天,还在msdn上问了,看到的回答基本都是做不了,最后还是在msdn里看到有人用open_Rowset实现类似的功能,然后就改进了一下代码,最后居然还写了一句欺骗sql编译器的语句。现在回想起来真有意思。
最近看分库分表,想起来这事,原来我当时做的就是这个啊!