Sqlsever第一次数据交换速度慢,是否正常? 感觉我自己编写的程序,第一次执行的时候不论是登录还是获取sqlserver数据时,反应都非常迟钝。总要十几秒后才能获取数据。而且常常发生数据连接失败的错误。不过成功后,数据交换就非常迅速了。但一段时间没有使用程序后,再次执行又再次发生迟钝,只是不再发生数据连接失败。这样的情况是否正常?如果不正常,是Sqlserver设置错误还是C#语句使用错误? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果你的代码没有问题的话,第一次运行慢可能是1. .net运行时编译2. 创建连接通道3. SQLSERVER编译SQL语句的时间4. 首次使用SQLSERVER数据没有缓存 跟数据库、网络应该没有关系。基本上就是#4楼所说的第一条。你的程序一下子集中遍历了太多类型的数据,或者是你调用了太多、太乱的第三方框架类库,dot net动态调用这些类型的Assembly并且进行JIT处理也要一定时间。实际上复杂的业务应该异步执行,让负责显示的线程流畅地刷新界面。 另外当然,提高物理内存配置内CPU主频也是一个不错的办法。 感觉4比较象!要不然怎么解释,长时间不操作后再次执行会再次迟钝一下。是时间太久缓存被清空了吧!有对Sqlserver熟悉的达能指导一下是不是这样的? 登录窗口也是这样的,登录时需要的数据不多吧!可还是这样。只是慢还可以忍受,麻烦是常常连接失败。需要再次尝试才成功。我的常用获得数据的语句如下: //读入Sql命令返回结果DataTable表。 /// <summary>读入Sql命令返回结果DataTable表。</summary> /// <param name="sqlText">SQL语句字符串</param> /// <returns>返回结果表</returns> public DataTable Get_Table(string sqlText) { conOrder=@"Data Source=.\SQLEXPRESS;AttachDbFilename=D:\MooServer\MooServer\MooServer.mdf;Integrated Security=True;User Instance=True"; SqlConnection ConTable = new SqlConnection(conOrder); DataTable thisTable = new DataTable(); try { SqlDataAdapter thisAdapter = new SqlDataAdapter(sqlText;, ConTable); thisAdapter.Fill(thisTable); } catch (SqlException ex) { throw new Exception(ex.Message); } return thisTable; }我的机器是P4 2.0, vs2008, Sqlserver2005 Express 我也遇到过,应该是Sql数据缓存问题。其实你在sql中运行一个查询,第一次运行往往比较慢,而再运行就会很快了。 第一次慢是正常的,不过10S以上就要考虑下是不是SQL写的有问题了~~~ WEB图片放大缩小不失真 winform的列表问题 怎么能不用DataAdapter就把dataSet填充 C#语言中的接口问题 如何把图像的分辨率改变,又能让图像质量可让人接受 silverlight如何检测弹出的IE/FF窗体是否关闭 问一个正则表达式怎么写 点击button的时候弹出子窗体,此子窗体没关闭时再点击button没用 检测到死锁'。IIS停止(急救) web原理问题!!!!! 大家帮我个忙啊 http GZIP解压缩
1. .net运行时编译
2. 创建连接通道
3. SQLSERVER编译SQL语句的时间
4. 首次使用SQLSERVER数据没有缓存
/// <summary>读入Sql命令返回结果DataTable表。</summary>
/// <param name="sqlText">SQL语句字符串</param>
/// <returns>返回结果表</returns>
public DataTable Get_Table(string sqlText)
{
conOrder=@"Data Source=.\SQLEXPRESS;AttachDbFilename=D:\MooServer\MooServer\MooServer.mdf;Integrated Security=True;User Instance=True"; SqlConnection ConTable = new SqlConnection(conOrder);
DataTable thisTable = new DataTable();
try
{ SqlDataAdapter thisAdapter = new SqlDataAdapter(sqlText;, ConTable); thisAdapter.Fill(thisTable);
}
catch (SqlException ex)
{
throw new Exception(ex.Message);
}
return thisTable; }我的机器是P4 2.0, vs2008, Sqlserver2005 Express