SQL直接在查询分析运行很快,程式运行时执行很慢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL直接在查询分析运行很快,程式运行时执行很慢相关的知识,希望对你有一定的参考价值。

以下方法正常情况下一闪就执行完了
有时候不知道为什麽抽风(执行要4-5秒),表中数据量就一千多,四栏资料
不知道SQLServer服务器有什麽问题,有什麽调整什麽东西?求大神回覆
Sql也很简短,没有锁
Sql="select arg_value as mail_no from lremailset a(nolock) where arg_type='A' and user_no='" + UserID + "'"

网上有说调整ARITHABORT的参数,试了没有用
SET ARITHABORT On
SET ARITHABORT OFF

目前重启SQLServer服务器可以解决问题,但是老是重启也不是办法

public string GetMaxNo(string UserID)

string SQL = "";
DataTable dtMail = new DataTable();
try

using (SQLHelper conn = new SQLHelper())

if (conn.OpenConnection())

SQL = "select arg_value as mail_no from lremailset a(nolock) where arg_type='A' and user_no='" + UserID + "'";
dtMail = conn.OpenDataTable(SQL, CommandType.Text);
if (dtMail.Rows.Count > 0)

return dtMail.Rows[0]["mail_no"].ToString();


conn.CloseConnection();


catch (Exception ex)

WebPublic.LogHelper.WriteLog("GetMaxNo"+UserID, ex);
throw ex;

return "0";

参考技术A 如果重启可以解决,可以查一下数据库内存配置、回收站,追问

SQLServer好像没有回收站

内存配置也够大

参考技术B 可能是网络的问题,程序中用IP连接,跟踪以下2句,看是哪句慢
1:if (conn.OpenConnection())
2:dtMail = conn.OpenDataTable(SQL, CommandType.Text);追问

conn.OpenDataTable(SQL, CommandType.Text);这句慢

追答

可以做一些测试,
ping 服务器,
select arg_value as mail_no from lremailset a where 1=0
在服务器本地执行

sql server执行几十万条sql很慢,怎么办?

sql都是insert into table—name values(.......)

参考技术A 指的是在SSMS里面执行么?如果是文件的话,直接用导入操作。如果是编程方式的而且刚好是.net的话,用SqlBulkCopy试试,批量插入数据非常快 参考技术B 把这些数据放入excel里,然后再将excel里的数据导入到sqlserver里就会快很多。 参考技术C 建一个索引 用游标插入,5000条插入一次 参考技术D 写在事务里
每1000条提交一次
可大提高效率本回答被提问者和网友采纳
第5个回答  2010-12-02 谁能有什么办法呢,太多了就是要时间的

以上是关于SQL直接在查询分析运行很快,程式运行时执行很慢的主要内容,如果未能解决你的问题,请参考以下文章

oracle存储过程执行很慢sql很快

一个SQL有时执行速度很快有时很慢,请问处理思路

存储过程EXECUTE IMMEDIATE V_SQL执行很慢或出不来,如果把V_SQL语句拿出来单独执行很快,这是为啥?

Sql 直接从 DataReader 中选择

绑定变量的sql通过程序查很慢,直接执行很快,这是为啥

sql server执行几十万条sql很慢,怎么办?