关于SQL SERVER高并发访问的解决办法 问题: 后台系统需要连接SQL SERVER,瞬时数据操作可能会很大,如同时有好几万数据要插入数据库,但在插入数据的同时另外的线程可能还要访问本数据库,插入数据的操作优先级比较低,其他的访问需要即时返回,想了很久不知道该怎么解决,望高手赐教了。 回答: 1. 提高服务器硬件配置 2. 使用 replication 之类的同步技术, 将频繁操作的表同步为多份, 将操作分散到这些同步的表中 3. 对于数据查询, 尽量使用 READ UNCOMMITTED 事务隔离级别, 以减少锁的开销 === 可以使用快照隔离级别 === --查询时,使用 SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED --或 with(nolock) --并且建好索引,尽量减少耗时查询 --多个服务器分担压力 --提高硬件性能这是最耗成本但最有效的方法了 === 查询时候不上锁 select *from tb(nolock) 使用镜像复制等 添加一些只读的数据库! === 除了以上的方法之外 2005还可以采用row-versiong based的snapshot 事务隔离层级。 建立snapshot database,将查询、更新两种不同操作隔离
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
sql server 多线程处理 数据库多线程
FMDatabaseQueue的实例,并在所有的线程中都只使用这一个实例。 <code class="language-objective-c hljs ini has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: borde
sql server 多线程处理 FMDatabase queue indatabase inTransaction -
sql server 多线程 多cpu 数据库多线程
1 多线程并发操作数据库会导致数据库异常: 例1:cursor会为空的情况,打印cursor的时候不为空,使用的时候就为空了,原因考虑是,多线程操作数据库导致数据库异常 例2:提示正在尝试打开一个已经被关闭的数据库:在多线程访问数据库的时候会出现这样的异常: java
sql server 多线程 多cpu 数据库 多线程 并发 Android SQLite