以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 查询速度的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=133621) |
-- 作者:blackzhu -- 发布时间:2019/4/17 11:40:00 -- 查询速度的问题 是这样的,有人误操作了大量的数据查询,结果在查的过程中,数据库基本卡着不能用,所有的操作全部卡死. 我在客户端是利用了load查询的数据.结果造成卡慢后,我第一时间叫数据库工程师进去查看日志.日志显示了两个 一个是我的查询语句,另外一个是下面的这段话: 2.READ COMMITTED READ COMMITTED(已提交读)是SQL SERVER默认的隔离级别,可以避免读取未提交的数据,隔离级别比READ UNCOMMITTED未提交读的级别更高; 该隔离级别读操作之前首先申请并获得共享锁,允许其他读操作读取该锁定的数据,但是写操作必须等待锁释放,一般读操作读取完就会立刻释放共享锁 难道我们的load方法是采用了锁定的方法,需要查询释放后才能进行插入和更新? |
-- 作者:blackzhu -- 发布时间:2019/4/17 11:43:00 -- 需要怎么处理这个? |
-- 作者:有点色 -- 发布时间:2019/4/17 11:47:00 -- 不清楚你做了什么,参考
https://blog.csdn.net/oyw5201314ck/article/details/79621954
|
-- 作者:blackzhu -- 发布时间:2019/4/17 12:07:00 -- 我就load 查询了一下,其他就没了,load是不是会死锁?同时执行了事务,不让写入操作? [此贴子已经被作者于2019/4/17 12:17:40编辑过]
|
-- 作者:有点色 -- 发布时间:2019/4/17 12:23:00 -- 以下是引用blackzhu在2019/4/17 11:40:00的发言:
是这样的,有人误操作了大量的数据查询,结果在查的过程中,数据库基本卡着不能用,所有的操作全部卡死.
默认级别内,select查找数据,是得到结果返回结果后,才会释放锁的。也就是,这个时候你对表格做的插入更改,需要等待查询完成才会开始。
查询结束了没有,查询超时以后,数据库是否恢复了正常?你现在要解决的问题是什么?
你先去补充一下数据库锁的相关知识。
[此贴子已经被作者于2019/4/17 12:23:28编辑过]
|
-- 作者:有点色 -- 发布时间:2019/4/17 12:29:00 -- 如果是要解锁,参考
https://www.cnblogs.com/guoguochong/p/7651549.html
|
-- 作者:blackzhu -- 发布时间:2019/4/17 12:30:00 -- 我就是想了解下 load函数是不是默认查询的时候锁定,等查询后再释放锁,才能操作其他? 我可以针对这个是想办法 [此贴子已经被作者于2019/4/17 12:30:27编辑过]
|
-- 作者:有点色 -- 发布时间:2019/4/17 12:41:00 --
是的。你可以load函数,或者select语句执行一个较为耗时的操作,然后同时在另一个地方执行update、insert等操作进行测试。
|
-- 作者:blackzhu -- 发布时间:2019/4/17 12:52:00 -- 明白了 |
-- 作者:blackzhu -- 发布时间:2019/4/17 13:15:00 -- 我再问下 Dim cmd
As New SQLCommand 内存表查询默认加了锁了吗?
|