开发数据库驱动的应用时,常为表的主键选择而烦恼,常用的几种主键生成方式都各有优缺点,但在数据可移植性、读性能、写性能之间做个权衡之后觉得还是自制+1的方式比较好。自制加1的方式的缺点是插入一条数据,需要先从数据库里获取一个新的主键ID,增加了网络往返的流量,而我改进之后是一下取一定数量的可用主键ID缓存起来,供应用来取,这样就不必每次插入新数据都先去数据库里取新ID了。而且int型的主键,无论做聚簇索引还是非聚簇索引,肯定比字符串、guid,COMB类型主键要快,毕竟它最窄,这就保证了读性能比较好。而写的时候大多时候从内存里读取新主键ID,也不会比identity列耗费多少性能。关于主键生成方式的讨论请看最后的相关链接。 Read More
posted @ 2007-09-23 17:07 蛙蛙王子 Views(3297) Comments(19) Diggs(1) Edit
整理了一些关于sqlserver性能调优的的资料,虽然大多数资料都是旧的,针对sqlserver2000的,不过大多还是还适用的。要想更好的优化数据库,最好看看《数据库系统概论 第四版》里关于物理存储和查询优化那几章,再看看《sqlserver2005揭密》系列的英文版。 Read More
posted @ 2007-09-23 16:17 蛙蛙王子 Views(7662) Comments(5) Diggs(7) Edit