sql-server - 什么样的SQL-Server锁级别适合insert?

标签 sql-server multithreading concurrency locking connection-pooling

我想每秒在表中插入近 1000 次。而且每天我都想一次查询所有插入的行。我想通过多线程和连接池来提高效率。但是我想知道哪种级别的并发控制更适合我。 SQL-Server 的选项列表在 MSDN Site 中.

谢谢。

最佳答案

您应该可以使用默认的插入隔离级别。你有聚簇索引吗?如果是这样,请确保它不会在您插入新行时碎片化。通常 guid 不适合用于聚集索引。此外,如果您有企业版并且能够识别表中的分区,则可以使用此列(例如区域或城市)对表进行分区,并将表的分区存储在不同的文件组中。这样您就可以避免 IO 争用。 如果您每天一次选择所有 数据,并且希望在选择过程中保持插入速度而无需太多锁定,您可以考虑创建数据库快照(同样是企业版)并从中进行选择。如果您可以忍受脏读,您可以将 with(nolock) 提示添加到您的选择中。

关于sql-server - 什么样的SQL-Server锁级别适合insert?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2173948/

相关文章:

java - 如何从线程 1 等待直到线程 2 通知

sql-server - SQL Server 服务代理错误处理

sql - 仅当变量是数值时才为其赋值

sql-server - 如何使用sql仅获取今天的日期而不是时间

sql - 将 group by 和 join 组合成一个查询 SQL

python - 当一组任务依赖于另一组任务时,如何在 python 中同时完成两组任务?

java - 如何查找等待执行的可运行对象的数量

c - 如何使用互斥体同步多个线程?

java - 使用 ThreadPoolExecutor 取消 SwingWorker

java - 新线程的thread.start()方法是否立即返回到当前线程?