很多时候都遇到这样一个问题:一个程序读数据库然后根据数据进行一些处理
当数据库不是瓶颈的时候
增加处理数据的线程技能提高处理的效率
但是当开始多线程读数据的时候就遇到一个经典的问题:
如何避免读取脏数据...我先具体描述一个场景嘛:
一个线程需要读一个表的数据然后进行一些操作过后
等待完成时再更新处理过的数据我知道的处理方式:数据库的锁:这个很不稳定,如果锁住了程序崩溃了那就很难解锁了,而且据说这样会影响数据库的效率目前还没有找到其他的解决办法
望各位大牛指点迷津
找了一些资料但都是初略的介绍
没有详细的数据或者实例佐证...
当数据库不是瓶颈的时候
增加处理数据的线程技能提高处理的效率
但是当开始多线程读数据的时候就遇到一个经典的问题:
如何避免读取脏数据...我先具体描述一个场景嘛:
一个线程需要读一个表的数据然后进行一些操作过后
等待完成时再更新处理过的数据我知道的处理方式:数据库的锁:这个很不稳定,如果锁住了程序崩溃了那就很难解锁了,而且据说这样会影响数据库的效率目前还没有找到其他的解决办法
望各位大牛指点迷津
找了一些资料但都是初略的介绍
没有详细的数据或者实例佐证...
解决方案 »
- C#如何用TreeView控件来读取本地的文件?
- 水晶报表水印问题
- SqlConnection 超时设置不起作用connection.Open()还是一样/判断本机是否可以连接远程SQL数据呢
- c#问题
- 做了个应用程序,已生成软件,怎么在“开始”-->“所有程序”中添加卸载软件的快捷键?
- To display a child form inside a top-level form?
- 如何利用C#在XML中添加节点
- 请帮忙看一下这段程序有什么问题,谢谢~
- 再问GAC:能过gacutil.exe将程序集加到GAC后,怎么样才会自动出现在"添加/移除控件"的对话框中呢?
- 我的应用不能关闭了
- C#怎么从BLL层获取第一层的Session
- 多线程下切换输入法导致程序假死的问题 .
传送门
我试了下时间戳
发现这个东西是针对整个数据库来进行记录的
和我想要的不是一个东西啊...
而且select一般是没有记录的
lock是一种实现方法
但是对于数据安全没有那么高的要求的情况用lock会损失很大的效率的