社区
C#
帖子详情
简单的select语句在后台执行很快,前台很慢,为啥?
vbagcl
2018-05-22 01:29:33
一个很简单的select语句,select * from t。
后台执行几秒钟,前台执行要几分钟,为啥?
...全文
1849
22
打赏
收藏
简单的select语句在后台执行很快,前台很慢,为啥?
一个很简单的select语句,select * from t。 后台执行几秒钟,前台执行要几分钟,为啥?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
我纯洁全身都纯洁
2018-05-23
打赏
举报
回复
你可以先试试只查询出一条数据显示到前台的时间
我纯洁全身都纯洁
2018-05-23
打赏
举报
回复
看下t表是不是有很多数据,你在客户端查询 一般只返回前1000条数据,需要点击下一页看后面的数据 如果数据太多,假如返回10万条数据,网络传输需要时间,10万条数据展示在界面上,比如用js拼接html,更耗时。
lovingkiss
2018-05-23
打赏
举报
回复
如果数据量大,网络传输有问题,那就分开,在服务器上负责读取压缩,客户端负责解压填充。。。 不要把数据层和界面层混在一起
Beck_Ham_
2018-05-23
打赏
举报
回复
楼上说的没错, 之前我做的一个c#项目的分页查询, 也是类似问题, 需要优化cs端的代码
风陵初遇误终身
2018-05-23
打赏
举报
回复
后台数据库执行查询是直接写SQL查询语句还是使用工具进行查询。 1,如果使用工具查询工具会默认查询前xx条(Navicat 默认是1000条),所以会很快。 2,如果直接写SQL语句查询出全部数据(因为你的查询语句没有条件),也只要几秒,那就需要检查代码或者检查驱动了。 因为数据量大的话前台程序数据传输需要时间(从数据库到你程序),构建DataTable对象存储数据需要时间,这或许是耗时所在。
本人QQ-554433626
2018-05-23
打赏
举报
回复
数据量大的话把OracleDataAdapter换成OleDbDataReader。你这sql没条件,不知道数据多不多,Fill过程较慢比较消耗系统资源。
学习的麋鹿
2018-05-23
打赏
举报
回复
虽然不是很懂你写的是什么,但是如果只是查询,建议需要什么字段就查哪些,尽量不要用Select * From Table的“ * ”,也可以了解一下Linq
Defonds
2018-05-23
打赏
举报
回复
用工具测一下看看慢在哪里
xiaoxiangqing
2018-05-23
打赏
举报
回复
以前我也遇到过,应该是执行计划不一样的问题,现在都不知道是什么原因?
大鱼>
2018-05-22
打赏
举报
回复
这个是可以跟踪的,你进去调试一下,可以很快定位到到底是哪里占用了大量时间,如果只是简单的把数据查询出来,应该不会浪费那么多时间(毕竟你所谓的前端与后端在同一台电脑上面)。
正怒月神
2018-05-22
打赏
举报
回复
网络问题
vbagcl
2018-05-22
打赏
举报
回复
如果是网络问题,那后天和前台在同一台电脑上啊
vbagcl
2018-05-22
打赏
举报
回复
前台C#代码还有能改善的地方吗?
非专业开发Five
2018-05-22
打赏
举报
回复
看看数据量吧 超过1w用非1000M局域网传输就会很慢的。
vbagcl
2018-05-22
打赏
举报
回复
前台的代码如下: OracleDataAdapter da; DataTable dt = new DataTable(); DataSet ds = new DataSet(); string errMsg = ""; bool refOK = false; bool cnnOK = false; OracleConnection orclConnection = DBConnect(ref cnnOK, ref errMsg); OracleCommand oraCommand = null; if (cnnOK) { try { oraCommand = orclConnection.CreateCommand(); oraCommand.Connection = orclConnection; oraCommand.CommandType = CommandType.Text; oraCommand.CommandText = sql; da = new OracleDataAdapter(oraCommand); da.Fill(ds); if (ds.Tables.Count > 0) { dt = ds.Tables[0]; } refOK = true; oraCommand.Dispose(); oraCommand = null; orclConnection.Close(); orclConnection = null; } catch (Exception ex) { refOK = false; errMsg = ex.Message; try { oraCommand.Dispose(); oraCommand = null; } catch { } try { orclConnection.Close(); orclConnection = null; } catch { } } } else { refOK = false; } return dt;
smthgdin_020
2018-05-22
打赏
举报
回复
你用什么数据库?前端发起查询请求之后,在数据库服务器上可以用工具监视一下sql信息,确定执行时间后,如果发现速度不慢,那就是数据库和前端的通讯问题,网络或者数据量大都可能。
debugLQ
2018-05-22
打赏
举报
回复
几分钟, 是不是 你程序里面循环什么的套太多哦
vbagcl
2018-05-22
打赏
举报
回复
前台是C#写的,后台是在toad里执行的
李敢敢
2018-05-22
打赏
举报
回复
看看网速快不快
SoulRed
2018-05-22
打赏
举报
回复
检查你的代码,是不是获取了不需要的东西。 或者你的“前台” 是远程连接。。。 当然比本机操作要慢
加载更多回复(1)
数据库查询
很快
,
后台
查询
很慢
,ssm
-------------可能性之一(传参问题)------------- 今天在测试一个新页面的时候发现了一个问题 console控制台打印的SQL拿到plsql里面
执行
的特别快,几百毫秒就出来了。 但是在后面serviceimpl中
执行
的特别慢,
执行
了三分钟。 mapper中的SQL
语句
大概如下: (date在数据库中的类型为varchar)
select
* from 表名 t where t.country_code not in ('CHN','TWN','MAC','HKG') &l
前端调用存储过程
很慢
,但是在数据库
执行
很快
,解决方案
*原因:**选项可以指示 SQL Server 每次
执行
存储过程时都复用上一次编译的
执行
计划。有时候存储过程的
执行
计划会因为参数值的不同而产生变化 , 存储过程的
执行
计划会被缓存,如果存储过程的
执行
计划过多且占用了大量内存,可能会导致内存压力增加,出现前端调用存储过程
很慢
,但是在数据库
执行
很快
。如果特别频繁发生这种问题的时候 添加WITH RECOMPILE。**治标解决方案:**重新编译一遍存储过程。让存储过程每次重新编译。
MSSQL 使用MSSM查询
很快
,但用网页查询
很慢
问题
最近遇到一个问题,两个页面查询非常慢,需要30~40秒,而相同的代码通过Microsoft SQL Server Management Studio或者VS的SQL查询工具查询却能秒出数据,感到非常奇怪。 如果修改存储过程,短时段内恢复正常,过一段时间又重新出现问题,大概是存储过程计划缓存的问题,可以试下重新编译存储过程: exec sp_recompile @objname='存储过程名称...
客户端直接
执行
存储过程正常但代码调用慢的问题
JAVA调用SQL
后台
存储过程时,有时突然就变得
很慢
,在
后台
直接
执行
存储过程没问题,但在
前台
调用存储过程时就是
很慢
,而且在
前台
调用成功后,再次调用还是一样的慢,但更新一下存储过程再调用就
很快
了。但这始终不能彻底解决问题,过段时间又会出来同样的问题。 解决办法:
简单
方法一:在可能比较耗时的
语句
后面加上option(recompile) 方法二:新编译存储过程
解决存储过程
执行
快,但程序调用则
执行
慢的问题
原文链接点击打开链接 已经遇到好几次这个问题了,终于找到答案,使用存储过程预编译。exec sp_recompile @objname='存储过程名称';; 这样我程序中
执行
超时的存储过程,1秒钟就可以
执行
出来了。 百度下什么是存储过程预编译。 -------------------------------------------------------------------------
C#
111,097
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章