这个礼拜一直在写存储过程,由于涉及不同版本数据库而且跨服务器、数据量大、业务逻辑较复杂,而且全部要在后台实现,着实头痛了几天,幸好得到miles和阿华的帮助,程序能跑了,但是还是很慢,可能还要改善。下面总结一下体会:
1、跨服务器查询,最好先在本地数据库建立链接,方便调用和变更。
2、跨服务器查询数据量大时,一定要控制好限制条件,确保传回来的数据的准确性和尽量的少。
3、如果遇到本地table和跨服务器table的联接查询,最好是在本地建个临时表再联接,这样应该会减少运算量,条件一定要限制好。
4、由于sql6.5跟sql2000可能在数据类型上有一些不同,遇到有跨服务器联接表的情况,即便是相同的字段类型也有可能报错,我们可以在联接的字段后加:COLLATE Chinese_PRC_CI_AS,具体原因我还不清楚。
5、尽量少联接。
6、坚决抵制用游标。在不得不使用循环表纪录的情况下,可以考虑以下方案:
建一个带自动加1编号的临时表,插入数据,再用一个变量控制循环和记录的访问。不过每次循环都要select一次哦,在数据量500行以内的情况还是可行的。