首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sqlserver用CLR实现自治事务的有关问题

2012-09-02 
sqlserver用CLR实现自治事务的问题我是按照这里的代码操作的http://blog.csdn.net/xman_78tom/article/det

sqlserver用CLR实现自治事务的问题
我是按照这里的代码操作的
http://blog.csdn.net/xman_78tom/article/details/5912164


能实现自治事务确实没有问题,但是在哪怕单个session循环插入的情况下,都会经常报错:

“在执行用户定义例程或聚合 "ExecuteATStmt" 期间出现 .NET Framework 错误: System.Data.SqlTypes.SqlNullValueException: Data is Null. This method or property cannot be called on Null values. System.Data.SqlTypes.SqlNullValueException: at System.Data.SqlTypes.SqlString.get_Value() at System.Data.SqlTypes.SqlString.op_Explicit(SqlString x) at AutoTran.ExecuteATStmt(SqlString sql, SqlString dbname, SqlInt16 iso) 。”

而且越到后面插入的速度会越来越慢。
简单的插入10000行记录,正常的insert花费17秒就结束了,可是调用上面方法的话,在大概3000多行的时候就插的特别慢,一秒进3,4行的记录,而且还频繁报上面的错误。

请问那个编译成DLL的C#代码,是不是有什么潜在的性能上的bug?

[解决办法]
比如说存储过程的返回值、变量未赋值、传递的参数为空、对不能为空的字段赋null值等。
[解决办法]
猜想啊
楼主是不是循环调用了博客当中的那个dll了?
如果是的话那么就很明显了,每次调用就建立会话,而且没有建立连接池调用的多了会话多了自然就会慢下来。
楼主可以尝试加上连接池试试
希望对你有帮助。
=========================================================================================

欢迎访问我的博客

热点排行
Bad Request.