Sql 在插入记录时,主键和索引之间有什么区别?
我必须将数据插入一个有PK的表中。我还有另一个表,其中包含聚集索引 我应该放弃最佳插入速度的PK或索引吗?然后再重新创建它们Sql 在插入记录时,主键和索引之间有什么区别?,sql,sql-server,insert,indexing,primary-key,Sql,Sql Server,Insert,Indexing,Primary Key,我必须将数据插入一个有PK的表中。我还有另一个表,其中包含聚集索引 我应该放弃最佳插入速度的PK或索引吗?然后再重新创建它们 我定期将数据加载到这些类型的表中,并希望确保在所有情况下都使用尽可能快的方式。主键唯一地标识记录,并具有其他用途。索引使选择查询运行得更快 您不应该丢弃主键 添加记录时是否删除并重新创建索引取决于具体情况 主键:唯一地标识数据,我们不能插入重复的数据 索引:索引帮助我们快速获取数据 关于主键和索引的非常重要的概念 假设列用主键标记,则会自动创建聚集索引, 如果表中不存在聚
我定期将数据加载到这些类型的表中,并希望确保在所有情况下都使用尽可能快的方式。主键唯一地标识记录,并具有其他用途。索引使选择查询运行得更快 您不应该丢弃主键
添加记录时是否删除并重新创建索引取决于具体情况 主键:唯一地标识数据,我们不能插入重复的数据 索引:索引帮助我们快速获取数据 关于主键和索引的非常重要的概念 假设列用主键标记,则会自动创建聚集索引, 如果表中不存在聚类索引 要确保索引创建成功,可以使用
sp_helpindex Index_Name
-关于索引:
如果一列在多行中包含NULL,则无法在该列上创建唯一索引。类似地,如果多个列的组合在多行中包含NULL,则无法在多个列上创建唯一索引。为了编制索引,这些值被视为重复值
-关于主键:
主键约束中定义的所有列必须定义为NOTNULL。如果未指定nullability,则参与主键约束的所有列都将其nullability设置为not NULL。否!不要删除主键和/或聚集索引-这将导致表中所有数据的重大改组!不要那样做!只需插入数据-使用例如
BULK insert
或SqlBulkCopy
来加快速度…可能的重复不是重复的问题…他问的是两者之间的区别我想知道每次插入记录的影响如何…循环是每天对表进行计算和替换。这并不能解决我的问题问题…什么时候我可以通过删除索引/pk来获得更快的加载速度?