我希望每秒能在一个表中插入近1000条记录。每天我也想一次性查询所有已插入的行。我想通过多线程和连接池来提高效率。但是我想知道哪种并发控制级别更适合我。SQL-Server的选项列表在MSDN网站上。谢谢。
对于插入操作,您应该使用默认隔离级别就可以了。您是否有聚集索引?如果是,确保在插入新行时不会碎片化。通常,guid 不是聚集索引的好选择。此外,如果您有企业版,并且能够识别表中的分区,则可以使用此列(例如 region 或 city)对表进行分区,并将表的分区存储在不同的文件组中。这样,您就可以避免 IO 冲突。
如果您每天需要一次选择所有数据,并且希望在选择过程中维护插入速度而不会出现太多锁定,则可以考虑创建数据库快照(再次使用企业版),然后从中进行选择。如果您可以接受脏读取,可以在选择语句中添加 with(nolock) 提示。