小编dot*_*tex的帖子

为什么aspnet_regsql GUID生成主键?

我正在Visual Studio 2010中开发一个ASP.NET网站(使用Service Pack 1,非常感谢).我想利用.NET的SQL Server 2008内置成员资格和角色提供程序.

现在,我已经开发了很长时间的Microsoft技术,并且已经在业务中使用了一些最好的SQL Server DBA.在构建数据库表时,他们每个人都告诉我远离 GUIDS作为主键:

  1. 拥有非常高的记录数.
  2. 有大量的插入和删除.

原因:因为主键是聚簇索引!

这基本上意味着插入表中的每个记录都必须遵守索引的约束.因此,如果索引按ASC排序,则具有新生成的GUID的记录必须以适当的顺序物理地嵌入到所讨论的数据表中.

这对于只有几千条记录的表来说就好了.SQL Server只需重新定位少数几个.但是,如果数据表具有数百万条记录,并且发现它必须在第216行插入新记录.可能需要花费大量时间(通过Web标准)才能完成.它必须将所有这些行向下移动,以插入新的行.

所以我的问题就是这个.由于微软以及我们所熟知和喜爱的所有DBS都对GUID作为主键说不...为什么ASPNET_REGSQL工具使用GUID作为主键创建表?

或者我错过了什么?2008年SQL Profiler引擎是否有新功能,不再将GUIDS视为任务?

asp.net-membership asp.net-roles

6
推荐指数
1
解决办法
653
查看次数

标签 统计

asp.net-membership ×1

asp.net-roles ×1