社区
C#
帖子详情
简单的select语句在后台执行很快,前台很慢,为啥?
vbagcl
2018-05-22 01:29:33
一个很简单的select语句,select * from t。
后台执行几秒钟,前台执行要几分钟,为啥?
...全文
1796
22
打赏
收藏
简单的select语句在后台执行很快,前台很慢,为啥?
一个很简单的select语句,select * from t。 后台执行几秒钟,前台执行要几分钟,为啥?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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)
数据库
执行
SQL
语句
跟踪
不管你是刚学习软件开发的初学者,还是在IT职场打拼多年的职场老鸟,都免不了要同各种数据库打交道,你可能会碰到以下几个问题:1、感觉自己写的sql
语句
没有错,但是
执行
结果总是不对;2、某个功能
执行
的
语句
知道有...
数据库查询
很快
,
后台
查询很
慢
,ssm
-------------可能性之一(传参问题)------------- 今天在测试一个新页面的时候发现了一个问题 console控制台打印的SQL拿到plsql里面
执行
的特别快,几百毫秒就出来了。 但是在后面serviceimpl中
执行
的特别
慢
,
执行
了三分钟。 mapper中的SQL
语句
大概如下: (date在数据库中的类型为varchar)
select
* from 表名 t where t.country_code not in ('CHN','TWN','MAC','HKG') &l
MSSQL 使用MSSM查询
很快
,但用网页查询很
慢
问题
最近遇到一个问题,两个页面查询非常
慢
,需要30~40秒,而相同的代码通过Microsoft SQL Server Management Studio或者VS的SQL查询工具查询却能秒出数据,感到非常奇怪。 如果修改存储过程,短时段内恢复正常,过一段时间又重新出现问题,大概是存储过程计划缓存的问题,可以试下重新编译存储过程: exec sp_recompile @objname='存储过程名称...
客户端直接
执行
存储过程正常但代码调用
慢
的问题
JAVA调用SQL
后台
存储过程时,有时突然就变得很
慢
,在
后台
直接
执行
存储过程没问题,但在
前台
调用存储过程时就是很
慢
,而且在
前台
调用成功后,再次调用还是一样的
慢
,但更新一下存储过程再调用就
很快
了。但这始终不能彻底解决问题,过段时间又会出来同样的问题。 解决办法:
简单
方法一:在可能比较耗时的
语句
后面加上option(recompile) 方法二:新编译存储过程
让用户自己
前台
写SQL
语句
?!!!v2.0
相信看到标题你有些怀疑,对于数据库的操作,怎么能让用户自己去写SQL
语句
呢?如果你工作时间久了,也会产生一些奇奇怪怪的想法,这里我只解释让用户自己
前台
写SQL
语句
!!!我可以很肯定的告诉你,没问题!!! 在传统的思路中,你如果是一个新手,你会想到的是什么?
select
* from 表 where 条件1,条件2,条件3;或者再整一些高大上的想法,拼接JSON,类型与阿里云,腾讯云的配置功能,直...
C#
110,567
社区成员
642,567
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章