Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在插入记录时,主键和索引之间有什么区别?_Sql_Sql Server_Insert_Indexing_Primary Key - Fatal编程技术网

Sql 在插入记录时,主键和索引之间有什么区别?

Sql 在插入记录时,主键和索引之间有什么区别?,sql,sql-server,insert,indexing,primary-key,Sql,Sql Server,Insert,Indexing,Primary Key,我必须将数据插入一个有PK的表中。我还有另一个表,其中包含聚集索引 我应该放弃最佳插入速度的PK或索引吗?然后再重新创建它们 我定期将数据加载到这些类型的表中,并希望确保在所有情况下都使用尽可能快的方式。主键唯一地标识记录,并具有其他用途。索引使选择查询运行得更快 您不应该丢弃主键 添加记录时是否删除并重新创建索引取决于具体情况 主键:唯一地标识数据,我们不能插入重复的数据 索引:索引帮助我们快速获取数据 关于主键和索引的非常重要的概念 假设列用主键标记,则会自动创建聚集索引, 如果表中不存在聚

我必须将数据插入一个有PK的表中。我还有另一个表,其中包含聚集索引

我应该放弃最佳插入速度的PK或索引吗?然后再重新创建它们


我定期将数据加载到这些类型的表中,并希望确保在所有情况下都使用尽可能快的方式。

主键唯一地标识记录,并具有其他用途。索引使选择查询运行得更快

您不应该丢弃主键


添加记录时是否删除并重新创建索引取决于具体情况

主键:唯一地标识数据,我们不能插入重复的数据

索引:索引帮助我们快速获取数据

关于主键和索引的非常重要的概念 假设列用主键标记,则会自动创建聚集索引, 如果表中不存在聚类索引

要确保索引创建成功,可以使用

sp_helpindex Index_Name 
-关于索引:

如果一列在多行中包含NULL,则无法在该列上创建唯一索引。类似地,如果多个列的组合在多行中包含NULL,则无法在多个列上创建唯一索引。为了编制索引,这些值被视为重复值

-关于主键:


主键约束中定义的所有列必须定义为NOTNULL。如果未指定nullability,则参与主键约束的所有列都将其nullability设置为not NULL。

否!不要删除主键和/或聚集索引-这将导致表中所有数据的重大改组!不要那样做!只需插入数据-使用例如
BULK insert
SqlBulkCopy
来加快速度…可能的重复不是重复的问题…他问的是两者之间的区别我想知道每次插入记录的影响如何…循环是每天对表进行计算和替换。这并不能解决我的问题问题…什么时候我可以通过删除索引/pk来获得更快的加载速度?