获取数据太频繁,偶尔出现--事务与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品

shsyzl007 2016-06-24 11:43:49
static DataView getdv(string SQLText)
{
string strconn = System.Configuration.ConfigurationManager.AppSettings["kdatastrconn"];

SqlConnection conn = new SqlConnection(strconn);
conn.Open();
SqlCommand mCommand = new SqlCommand(SQLText, conn);
mCommand.CommandType = CommandType.Text;
mCommand.CommandText = SQLText;
mCommand.CommandTimeout = 3600;
SqlDataAdapter adapter = new SqlDataAdapter();
DataSet ds = new DataSet();

adapter.SelectCommand = mCommand;
adapter.Fill(ds, "t1");
conn.Close();
return ds.Tables[0].DefaultView;
}
...全文
549 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
shsyzl007 2016-06-24
  • 打赏
  • 举报
回复
数据表只有5个字段Open,close,high,low,time,数据流大概2.5万条,每次读出来的数据大概500条
shsyzl007 2016-06-24
  • 打赏
  • 举报
回复
引用 1 楼 sp1234 的回复:
把你同时执行着的sql语句贴出来。贴别人写的代码能解决你的什么问题?
这就是我用的,软件里拷贝出来的。就是while(true){getdv(sql) }不断取数据根据取到的数据进行相关处理.sql也是固定的。也就是不断取一个数据表,实时进行处理
wjkaola123 2016-06-24
  • 打赏
  • 举报
回复
只是访问数据库的代码, 没有看到你的锁是怎么用的
  • 打赏
  • 举报
回复
把你同时执行着的sql语句贴出来。贴别人写的代码能解决你的什么问题?
  • 打赏
  • 举报
回复
默认不是nolock……
shsyzl007 2016-06-24
  • 打赏
  • 举报
回复
引用 9 楼 starfd 的回复:
如果你已经nolock了,那你这个锁的问题就是数据更新地方的问题了,不是你展示的读的地方的问题
不是,我没加nolock。我的意思是默认就是nolock吧,加不加都一样吧?
  • 打赏
  • 举报
回复
如果你已经nolock了,那你这个锁的问题就是数据更新地方的问题了,不是你展示的读的地方的问题
shsyzl007 2016-06-24
  • 打赏
  • 举报
回复
引用 7 楼 starfd 的回复:
你这个读完了,后面会有其它程序来处理掉吧?或者你一直都是重复读相同的数据? 如果你不希望等待锁之类的、并且允许脏读,那么可以调整你的sql,比如mssql在表名后面加上with(nolock)
里面的数据是一直变的,有新的数据就要及时进行计算处理。默认好像是就是nolock吧如果是读的话
  • 打赏
  • 举报
回复
你这个读完了,后面会有其它程序来处理掉吧?或者你一直都是重复读相同的数据? 如果你不希望等待锁之类的、并且允许脏读,那么可以调整你的sql,比如mssql在表名后面加上with(nolock)
正怒月神 2016-06-24
  • 打赏
  • 举报
回复
5楼说的有道理。 频繁获取数据,应该使用DataReader,这个读取速度比dataset快。 当然,按照业务需求,看你不断获取数据,是要实时刷新吗? 你可以试试数据库通知服务 sqldependency http://blog.csdn.net/adon_hua/article/details/4062426
圣殿骑士18 2016-06-24
  • 打赏
  • 举报
回复
while true里做循环,还不带等待的,太暴力了。你这是虐数据库呢,这种设计和写法上就有问题。 1、循环里可以每次等待几秒钟再取,降低频率 2、频繁的取数据,就不要用DataSet了,太重了,直接上DataReader 3、最好的方式,是考虑如何使用缓存的机制来解决对数据库的压力问题

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧