mybatis 查询大量数据 效率低

下面是我的mapper文件,查询超级慢,请问有什么办法优化吗

 <select id="selectMedAlls" resultMap="BaseResultMap" >
with temp as
 (select FUN_GET_DEPT_NAME(a.nurse_cell_code) as nurse_cell_name,
         month_code,
         sum(a.out_num) as out_num, /*出院人数*/
         sum(a.bednum) as sjkfzcrs /*实际开放总床日数*/,
         round((sum(a.bednum) / 30), 1) as pjkfcws /*平均开发床位数*/,
         sum(a.end_num) as sjzyzcws /*实际占用总床日数*/ /*'期末人数'*/
    from nurse_day_report a
   where a.month_code between '201501' and '201511'
   group by a.nurse_cell_code, month_code
   order by a.nurse_cell_code),
   data as (
select 'thisM' as time ,
nvl(max((select count(1) as aa
             from fin_opr_register t1
            WHERE t1.dept_code not in ('0019', '0277', '0278') /*挂号主表.科室号 急诊科 急诊外科 急诊产科*/
              and t1.valid_flag = '1'
              and t1.reglevl_name <![CDATA[<>]]> ' '
              and to_char(t1.oper_date, 'yyyymm') = month_code)),0) as regist, /*门诊人次:期内科室号不属于'0019', '0277', '0278'的有效挂号人数*/
       nvl((sum(temp.out_num)),0) as outer, /*期内出院人数总计:0 治愈1 好转 2 未愈3 死亡 4 其他'*/
       nvl(sum(sjzyzcws),0) as sjzyzcrs, /*实际占用总床日数,*/
       nvl(to_number(nvl(decode(sum(pjkfcws), 0, 0, round(sum(out_num) / sum(pjkfcws), 1)),0)),0) as zzcs, /*周转次数,*/
       nvl(to_number(nvl(decode(sum(sjkfzcrs), 0, 0, round(sum(sjzyzcws) * 100 / sum(sjkfzcrs), 1)), 0)),0) as cwsyl /*床位使用率*/
  from temp
  where month_code='201511'

union all
select 'lastM' ,
nvl(max((select count(1) as aa
             from fin_opr_register t1
            WHERE t1.dept_code not in ('0019', '0277', '0278') /*挂号主表.科室号 急诊科 急诊外科 急诊产科*/
              and t1.valid_flag = '1'
              and t1.reglevl_name <![CDATA[<>]]> ' '
              and to_char(t1.oper_date, 'yyyymm') = month_code)),0) as regist, /*门诊人次:期内科室号不属于'0019', '0277', '0278'的有效挂号人数*/
       nvl((sum(temp.out_num)),0) as outer, /*期内出院人数总计:0 治愈1 好转 2 未愈3 死亡 4 其他'*/
       nvl(sum(sjzyzcws),0) as sjzyzcrs, /*实际占用总床日数,*/
       nvl(to_number(nvl(decode(sum(pjkfcws), 0, 0, round(sum(out_num) / sum(pjkfcws), 1)),0)),0) as zzcs, /*周转次数,*/
       nvl(to_number(nvl(decode(sum(sjkfzcrs), 0, 0, round(sum(sjzyzcws) * 100 / sum(sjkfzcrs), 1)), 0)),0) as cwsyl /*床位使用率*/
  from temp
  where month_code='201511'
  union all
  select 'thisY' ,
nvl(max((select count(1) as aa
             from fin_opr_register t1
            WHERE t1.dept_code not in ('0019', '0277', '0278') /*挂号主表.科室号 急诊科 急诊外科 急诊产科*/
              and t1.valid_flag = '1'
              and t1.reglevl_name <![CDATA[<>]]> ' '
              and to_char(t1.oper_date, 'yyyymm') = month_code)),0) as regist, /*门诊人次:期内科室号不属于'0019', '0277', '0278'的有效挂号人数*/
       nvl((sum(temp.out_num)),0) as outer, /*期内出院人数总计:0 治愈1 好转 2 未愈3 死亡 4 其他'*/
       nvl(sum(sjzyzcws),0) as sjzyzcrs, /*实际占用总床日数,*/
       nvl(to_number(nvl(decode(sum(pjkfcws), 0, 0, round(sum(out_num) / sum(pjkfcws), 1)),0)),0) as zzcs, /*周转次数,*/
       nvl(to_number(nvl(decode(sum(sjkfzcrs), 0, 0, round(sum(sjzyzcws) * 100 / sum(sjkfzcrs), 1)), 0)),0) as cwsyl /*床位使用率*/
  from temp
  where month_code between '201601' and '201511'
  union all
  select 'lastY' ,
nvl(max((select count(1) as aa
             from fin_opr_register t1
            WHERE t1.dept_code not in ('0019', '0277', '0278') /*挂号主表.科室号 急诊科 急诊外科 急诊产科*/
              and t1.valid_flag = '1'
              and t1.reglevl_name <![CDATA[<>]]> ' '
              and to_char(t1.oper_date, 'yyyymm') = month_code)),0) as regist, /*门诊人次:期内科室号不属于'0019', '0277', '0278'的有效挂号人数*/
       nvl((sum(temp.out_num)),0) as outer, /*期内出院人数总计:0 治愈1 好转 2 未愈3 死亡 4 其他'*/
       nvl(sum(sjzyzcws),0) as sjzyzcrs, /*实际占用总床日数,*/
       nvl(to_number(nvl(decode(sum(pjkfcws), 0, 0, round(sum(out_num) / sum(pjkfcws), 1)),0)),0) as zzcs, /*周转次数,*/
       nvl(to_number(nvl(decode(sum(sjkfzcrs), 0, 0, round(sum(sjzyzcws) * 100 / sum(sjkfzcrs), 1)), 0)),0) as cwsyl /*床位使用率*/
  from temp
  where  month_code between '201501' and '201511'
)
select 
sum(case when TIME = 'thisM' then regist else 0 end) as "thisM",
sum(case when TIME = 'lastM' then regist else 0 end) as "lastM",
decode(sum(case when TIME = 'lastM' then regist else 0 end) ,0,0,round((sum(case when TIME = 'thisM' then regist else 0 end)-sum(case when TIME = 'lastM' then regist else 0 end))*100/sum(case when TIME = 'lastM' then regist else 0 end),3))as lvM,
sum(case when TIME = 'thisY' then regist else 0 end) as "thisY",
sum(case when TIME = 'lastY' then regist else 0 end) as "lastY" ,
decode(sum(case when TIME = 'lastY' then regist else 0 end) ,0,0,round((sum(case when TIME = 'thisY' then regist else 0 end) -sum(case when TIME = 'lastY' then regist else 0 end) )*100/sum(case when TIME = 'lastY' then regist else 0 end)  ,1))as lvY
from data
union all
select 
sum(case when TIME = 'thisM' then outer else 0 end) as "thisM",
sum(case when TIME = 'lastM' then outer else 0 end) as "lastM",
decode(sum(case when TIME = 'lastM' then outer else 0 end) ,0,0,round((sum(case when TIME = 'thisM' then outer else 0 end)-sum(case when TIME = 'lastM' then outer else 0 end))*100/sum(case when TIME = 'lastM' then outer else 0 end),1)) as LvM,
sum(case when TIME = 'thisY' then outer else 0 end) as "thisY",
sum(case when TIME = 'lastY' then outer else 0 end) as "lastY",
decode(sum(case when TIME = 'lastY' then outer else 0 end),0,0,round((sum(case when TIME = 'thisY' then outer else 0 end)-sum(case when TIME = 'lastY' then outer else 0 end))*100/sum(case when TIME = 'lastY' then outer else 0 end),1) ) as LvY
from data

union all
select 
sum(case when TIME = 'thisM' then sjzyzcrs else 0 end) as "thisM",
sum(case when TIME = 'lastM' then sjzyzcrs else 0 end) as "lastM",
decode(sum(case when TIME = 'lastM' then sjzyzcrs else 0 end) ,0,0,round((sum(case when TIME = 'thisM' then sjzyzcrs else 0 end)-sum(case when TIME = 'lastM' then sjzyzcrs else 0 end))*100/sum(case when TIME = 'lastM' then sjzyzcrs else 0 end),1)) as LvM,
sum(case when TIME = 'thisY' then sjzyzcrs else 0 end) as "thisY",
sum(case when TIME = 'lastY' then sjzyzcrs else 0 end) as "lastY",
decode(sum(case when TIME = 'lastY' then sjzyzcrs else 0 end) ,0,0,round((sum(case when TIME = 'thisY' then sjzyzcrs else 0 end)-sum(case when TIME = 'lastY' then sjzyzcrs else 0 end) )*100/sum(case when TIME = 'lastY' then sjzyzcrs else 0 end)  ,1)) as LvY
 from data
union all
select 
sum(case when TIME = 'thisM' then zzcs else 0 end) as "thisM",
sum(case when TIME = 'lastM' then zzcs else 0 end) as "lastM",
decode(sum(case when TIME = 'lastM' then zzcs else 0 end) ,0,0,round((sum(case when TIME = 'thisM' then zzcs else 0 end)-sum(case when TIME = 'lastM' then zzcs else 0 end))*100/sum(case when TIME = 'lastM' then zzcs else 0 end),1))  as LvM,
sum(case when TIME = 'thisY' then zzcs else 0 end) as "thisY",
sum(case when TIME = 'lastY' then zzcs else 0 end) as "lastY",
decode(sum(case when TIME = 'lastY' then zzcs else 0 end),0,0,round((sum(case when TIME = 'thisY' then zzcs else 0 end)-sum(case when TIME = 'lastY' then zzcs else 0 end))*100/sum(case when TIME = 'lastY' then zzcs else 0 end) ,1)) as LvY
from data
union all
select 
sum(case when TIME = 'thisM' then cwsyl else 0 end) as "thisM",
sum(case when TIME = 'lastM' then cwsyl else 0 end) as "lastM",
decode(sum(case when TIME = 'lastM' then cwsyl else 0 end) ,0,0,round((sum(case when TIME = 'thisM' then cwsyl else 0 end)-sum(case when TIME = 'lastM' then cwsyl else 0 end))*100/sum(case when TIME = 'lastM' then cwsyl else 0 end),1)) as LvM,
sum(case when TIME = 'thisY' then cwsyl else 0 end) as "thisY",
sum(case when TIME = 'lastY' then cwsyl else 0 end) as "lastY",
decode(sum(case when TIME = 'lastY' then cwsyl else 0 end),0,0,round((sum(case when TIME = 'thisY' then cwsyl else 0 end)-sum(case when TIME = 'lastY' then cwsyl else 0 end))*100/sum(case when TIME = 'lastY' then cwsyl else 0 end) ,1)) as LvY
from data
  </select>

3个回答

表上有索引的话可以用基于索引的连接方法

查询出的结果是
图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
大量数据时 查询的效率怎么优化
在一个 数据表中 有一个action 字段 ,他有两个 值 0 ,1rnrnrn现在要统计 action=0 的字段 减去 action=1 的字段 rnrn我的sql 语句为:rnrnrnselect(rn(select count(action) as logIdCount from login_D1_20170713 where action = 0 and time =1499904000)rn - rn(select count(action) as logIdCount from login_D1_20170713 where action = 1 and time =1499904000)rnrn)as logIdCountrnrnrn不知道 到遇到 大量数据时 查询的效率怎么优化
mybatis对大量数据的游标查询
mapper定义 @Mapper public interface NewsRepository { String simpleQuery="select news.id,news.title,news.keywords," + " news.url,news.author," + " data.content,news.i...
hibernate 为什么处理大量数据的时候效率低
hibernate为什么处理大量数据的时候效率低?rn用什么可以优化呢
hibernate 插入大量数据的 效率
数据库是oracle,主键来自sequence。当插入一颗树到多个表里时,(e.g. Scholl -> Grade -> Class -> Student),取得sequence.nextval,的过程相当慢,导致整个插入过程长的无法接受,大家有什么办法处理这种情况吗?
datagirdview 添加大量数据的效率
给datagirdview 添加上百,千条数据,怎么让它速度快,效率高?
提高插入大量数据效率
1、设置表nologging 2、使用/*+append*/ 3、手动分配区 alter table t1 allocate extent; alter table t1 allocate extent(datafile 'D:\ORACLE\ORADATA\O10\USERS01.DBF‘ size 9k); 4、关掉归档 5、增加redo日志  ...
关于大量数据的查询
有一个历史流水表,数据量很大,有1千万条以上的数据rn现在我要把这个表中的所有数据都取出来,逐条进行分析,得到一些统计结果rn请问怎样才可以做到从数据库中查询如此大量的数据时,能尽可能的减轻数据库的负担(不影响其他业务),rn而且又可以让前台客户端程序的响应时间在可以接受的范围内?rnrn我用的数据库是Oracle8i,我的客户端是通过2的方式与数据库连接的rnrn1、如果客户端与数据库是通过ADO方式连接,应该如何做?rnrn2、如果客户端与数据库没有直接连接,而是通过一个Socket程序连接,查询结果是用文件方式返回的,应该如何做?
Java-针对查询大量数据时 解决效率的方案
Java-针对查询大量数据时 解决效率的方案
PreparedStatement.executeBatch()效率低的问题
下面是我的方法,我的数据量大概有10w条左右,sql语句是简单的更新语句,我每3000条做一次提交(在调用本方法的方法中实现的),3000条数据需要4分多钟,这还是要本机数据库,如果是服务器数据库的话时间回达到10几分钟,有的时候会达到40分钟,我尝试给换成每1000条提交和每1条提交,时间几乎差不多(本机),服务器未测试,所以我想知道为什么会出现这样的问题,群里有人告诉我说他的700w数据才2分钟,不知道真假。但是现在这个效率直接影响到我的其他业务了,请各位大侠协助解决下,出出注意,不盛感激。 rnconn.setAutoCommit(false);//开始事务rn ChangeDay cd = new ChangeDay();rn String sql = cd.updateDay();rn ps = conn.prepareStatement(sql);rn Iterator it = list.iterator();rn int i=0;rn while(it.hasNext())rn rn //System.out.println(i);rn Bankaccount bc = (Bankaccount)it.next();rn ps.setFloat(1, bc.getTheMoney());rn ps.setString(2, bc.getBankaccount());rn ps.addBatch(); rn i++;rn rn rn //System.out.println("111111111");rn ps.executeBatch();//此处特别慢rn //System.out.println("222222222");rn conn.commit();//提交事务rn //System.out.println("33333333333");rn ps.clearBatch(); rn //System.out.println("444444444");rn
入口深, 效率低
很多软件, 把某功能的入口做得很深, 用起来就费劲。一般来说, 如果从主界面开始算(第1层), 一个功能的深度超过3, 我就不太想用了。 很多人的简历啊, 没有把关键信息放在简历文件名字中, 错失第一入口! 在我们工作中也一样, 查找常用资料, 深度最好不要超过3. 这让我想到了冷热数据、缓存, 其实都是一个道理。
全文索引效率特低
从20000条记录中搜索出7700条符合条件的结果,发现要3秒钟。能不能控制到0.5秒以内呀?
DrawText 效率低的问题
RECT rect = iX, iY, iX + widht, iY + m_iFontHeight;rn rn::DrawText(m_MemHDC, aText->value, aText->length, &rect, (DT_LEFT | DT_TOP));rnrn我就用的这个函数,aText->value 的数据类型为 WCHAR*的;rnrn结果我一个循环中调用这里75次左右, 我用GetTickCout()把这75次的总时间打了出来,用了将近40毫秒这么久??rnrn我现在想知道,有没有其它快点的绘制文字的API, 或者是因为其它原因?rnrn我的工程是 sdk6.0 mfc的,支持atl。rnrn我自己做了个demo 同样绘制 75次左右, 也用了25毫秒左右, 感觉就是DrawText 这个函数本身很慢。rnrn我用不同长度的字符串,发现 写2个汉字的字符串用了18毫秒左右, 而6个汉字的字符串用了25毫秒左右。rnrn而我工程里的都是4个汉字长度的字符串就用了快40毫秒,而且只是DrawText 函数的时间,(demo中还包括设置字体颜色,获取字符串将显示的长度等操作)rnrn看别人说与字体有关rn我在主窗口中用rnrnm_hfont = (HFONT)::GetStockObject(SYSTEM_FONT);rnHGDIOBJ oldPen = GetDC()->SelectObject(m_hfont);rn::DeleteObject(oldPen);rnrn重新设置了字体,发现没有什么作用。rnrn我绘制的字符串基本都是中文的。rnrn不知道有没有人遇到同样的问题rnrnrn
oracle效率低的原因
前几天做了个测试,oracle查询100w条记录,发现很慢,甚至慢于mysql。rnrnoracle服务端装在AS4上,4g内存。mysql装在同一台机器上。rnrn请问高手或DBA:rn这种效率低的原因和机器的性能有关系吗?oracle对硬件要求很高,但是应该也不至于吧。100w条也没多少。也和分区没关系。rnrn我想可能还是配置的问题,应该从哪方面去修改配置会让oracle性能达到最优。
EntityBean效率低吗?
小弟不解,用EntityBean时,每新增一条记录都会new出一个bean,而他又没有特别的用处,只会占用宝贵的内存资源而已
游标为什么效率低?
如题,常听人这么说,但是不明白为什么
同步锁效率低的例子
public class TestSync3 implements Runnable { private int b = 100;private synchronized void m1() throws InterruptedException { b = 2000; // Thread.sleep(500); System.out.println
学习效率低啊。。。。。
之前想利用寒假在家的时间好好学习下SSH2,但无奈进度实在是缓慢,至今还没有进入学习状态,眼看这大四就要来了,即将处于毕业即失业的状态,心酸啊。。。。...
系统调用为什么效率低
在输入输出操作中,直接使用底层系统调用的问题是他们的效率很低,为什么呢? 系统调用会影响系统的性能。执行系统调用时,Linux必须从用户代码切换到内核代码运行,然后再返回用户代码。减小这种开销的好方法是,在程序中尽量减少系统调用的次数,并且让每次系统调用完成尽可能多的工作。例如每次读写大量的数据而不是每次仅读写一个字符。 硬件会对底层系统调用一次能读写的数据块做出一定的限制。例...
sql语句效率低
[code=SQL]rnupdate MyWork_MailHolder set MyWork_MailHolder.SourceFolderID='1',rnMyWork_MailHolder.FolderID=4,MyWork_MailHolder.InfoID=a.SelfField rnFROM MyWork_MailInfo a where rnMyWork_MailHolder.FolderID='1'rnand MyWork_MailHolder.PersonnelID='5188AECE-417E-4E49-9DA1-C2E9C73DF9E2'rnand MyWork_MailHolder.InfoID=a.SelfFieldrnand isnull(MyWork_MailHolder.InfoID,'')rnin('a','a','这里是一个有600多个ID的');rn[/code]rn执行这个需要三十几秒的时间rn二把isnull(MyWork_MailHolder.InfoID,'')rnin('a','a','这里是一个有600多个ID的');改成MyWork_MailHolder.InfoID in('a','a','这里是一个有600多个ID的');rn只需要不到一秒的时间就搞定,,为什么 相差这么大。求原因。。。。rnrnin('a','a','这里是一个有600多个ID的');如果没有600多个ID,只有几个的话 查询也很快得。为什么,求原因
==为什么效率比!低
还有为什么++效率比+=高
怎样解决程序遍历中大量if引起的程序效率低
对于这种情况怎么修改,if不能放在外层循环rnfor(1000)rnrn for(200000)rn rn if(a > b)rn rn
解决sqldeveloper导入大量insert语句效率低的问题
需要从A库导出大量数据到B库,导出的insert语句去插入B库时效率低,工具因为数据量太大,报了out of memory的错误。 问题解决,做一个记录。 oracle数据库 PLSQL Developer 尝试在sql中插入commit,进行批量提交,工作量太大,无果 利用PLSQL Developer工具导出大量表数据的方法 选中要导出得表: 登陆要导...
MyBatis查询不到数据
数据库中有数据,但是查询不到rnrn2015-09-29 09:17:24,118 DEBUG [modules.sys.dao.OperatorDao.getByOpid] - ==> Preparing: SELECT a.id, a.company_id AS "company.id", a.office_id AS "office.id", a.opid, a.password, a.name, a.email, a.phone, a.mobile, a.optype AS opType, a.login_ip, a.login_time, a.remarks, a.login_flag, a.create_by AS "createBy.id", a.create_date AS createDate, a.update_by AS "updateBy.id", a.update_date AS updateDate, c.name AS "company.name", c.parent_id AS "company.parent.id", c.parent_ids AS "company.parentIds", ca.id AS "company.area.id", ca.name AS "company.area.name", ca.parent_id AS "company.area.parent.id", ca.parent_ids AS "company.area.parentIds", o.name AS "office.name", o.parent_id AS "office.parent.id", o.parent_ids AS "office.parentIds", oa.id AS "office.area.id", oa.name AS "office.area.name", oa.parent_id AS "office.area.parent.id", oa.parent_ids AS "office.area.parentIds", cu.id AS "company.primaryPerson.id", cu.name AS "company.primaryPerson.name", cu2.id AS "company.deputyPerson.id", cu2.name AS "company.deputyPerson.name", ou.id AS "office.primaryPerson.id", ou.name AS "office.primaryPerson.name", ou2.id AS "office.deputyPerson.id", ou2.name AS "office.deputyPerson.name" FROM sys_operator a JOIN sys_office c ON c.id = a.company_id JOIN sys_area ca ON ca.id = c.area_id JOIN sys_office o ON o.id = a.office_id JOIN sys_area oa ON oa.id = o.area_id LEFT JOIN sys_operator cu ON cu.id = c.primary_person LEFT JOIN sys_operator cu2 ON cu2.id = c.deputy_person LEFT JOIN sys_operator ou ON ou.id = o.primary_person LEFT JOIN sys_operator ou2 ON ou2.id = o.deputy_person WHERE a.opid = ? AND a.is_valid = ? rn2015-09-29 09:17:24,118 DEBUG [modules.sys.dao.OperatorDao.getByOpid] - ==> Parameters: 12345(String), 0(String)rn2015-09-29 09:17:24,149 DEBUG [modules.sys.dao.OperatorDao.getByOpid] - <== Total: 0
MyBatis查询多表数据
联合查询表中数据 1.一对多关系 在两个数据表中,表1中一条数据与表2中的多条数据有关系,我们想要查询出与表1中的某一条数据有关的表2中所有数据,就需要使用到数据表之间的一对多关系。 在表1的实体类中我们这么定义 //此实体类作为一对多关系中的“一” //并实现序列化接口 public class Person implements Serializable { private int id;...
mybatis查询层次结构的数据
最近做了一个评论功能,一篇文章的评论数据的组成结构如下图: CommentBean和文章是一一对应的关系,一个CommentBean下可能有多条评论数据(CommentDetailBean),一条评论下又可能有多条回复(ReplyDetailBean),做出评论和回复的用户信息又来自另一张User的表。下面将使用mybatis从数据库查询出具有这样层次结构的数据。 &amp;lt;select id=&quot;...
MyBatis的in查询查不到数据
一开始使用工具类将id的集合字段处理成字符串格式的in条件: ids: 1,2,3,4  ===&amp;gt;  '1','2','3','4'     inStr 然后在mapper.xml中使用 in ( #{inStr})作为条件拼接进SQL语句 查询过程中,打印出的SQL语句是正确的,同时将该SQL放到DB工具中也可以查到数据,但是IDE的控制台打印确确实实是0条记录!! 百思不得其解 ...
mysql查询大量数据异常
The driver was unable to create a connection due to an inability to establish the client portion of a socket.rnrnThis is usually caused by a limit on the number of sockets imposed by the operating system. This limit is usually configurable. rnrnFor Unix-based platforms, see the manual page for the 'ulimit' command. Kernel or system reconfiguration may also be required.rn数据库没问题,每次查询完执行:rnif(rs!=null)rn try rn rs.close();rn catch (Exception e) rn // TODO: handle exceptionrn rn rn //关闭资源[先开后闭];rn if(ps!=null)rn try rn ps.close();rn catch (SQLException e) rn // TODO Auto-generated catch blockrn e.printStackTrace();rn rn ps=null;//使用垃圾回收.rn rn if(ct!=null)rn try rn ct.close();rn catch (SQLException e) rn // TODO Auto-generated catch blockrn e.printStackTrace();rn rn ct=null;rn rn在一个方法里有个循环要反复去查询数据库,每次都是调用工具类去查询,也就是每次都执行了上面的关闭。可当查询到4000次左右时就抛出了上面的异常。请帮忙看看,万分感谢!
查询大量数据的性能问题
各位高手,小弟是初学者,有个问题不知道应该怎么解决,希望高手给个思路或者解决方案,谢谢rnrn是这样的,有一个客户数据条件的查询,但是要求客户在什么都不输入的情况下要查询出所有的数据我的数据库中现在有7000条左右的数据我写了一个查询语句获得所有数据的一个字段的值rnrnselect BH from WZCL where WZCL=1rnrn这个执行很快得到了所有符合条件的编号rnrn然后我再用这个编号当作条件rnrnselect * from WZCL where BH in ('刚才查询出来的所有编号的内容共计7000条')rnrn再执行这条SQL语句的时候在查询分析器中都跑了9分多钟rnrn这样把这个SQL语句当参数传给DataSet的时候就会超时,会出现错误rnrn拜托各位我应该怎么改才能使这个SQL的性能提高呢?rnrn有的朋友说把select * 改成我要的字段,数据库中一共40个字段,我要用32个,还没有测试可以提高多少效率。rnrn谢谢各位了,拜托,拜托
关于大量数据的查询分页
谁能想出一个最好的方法rn1 按条件查询所有符合条件idrn2 按分页洗选idrn3 获取所选id数据rn望高手指点rn
JDBC查询大量数据异常问题
当连续对数据库进行查询操作时,出现如下异常: The driver was unable to create a connection due to an inability to establish the client portion of a socket. This is usually caused by a limit on the number of sockets imp...
DataGrid 中输出大量数据的效率问题?
请问高手,我有一张大表,其中可能有百万条以上的数据,现在要用datagrid展示出来,有没有什么办法可以提高效率啊?
存储和处理大量的数据的效率问题
想存储大量的数据,使用数据库的话,一个是占用空间较大,再就是关于同步数据时候,数据量大,造成同步时间长。有什么办法解决么?rn据说不用数据库,使用二进制文件进行数据存储的话,存储空间小,查询和修改效率高。不知道哪位大师知道使用二进制文件存储和处理数据的方法?请不吝赐教!!
WebBrowser插入大量数据,效率问题
从数据库读取数据用时大概3-4秒,这个可以接受rnrnWebBrowser1.Document.All.div1.innerHTML = "1万行的一个 "rn在WebBrowser1里显示这个数据,要15秒左右,用户接受不了.还不能用分页显示rnrn有什么好办法呢
求大量数据的查询思路
一次要查询出30万条记录,按ID排序,每页显示10条记录,如何加快查询速度
jfreechart折线图大量数据效率问题
我使用Jfreechart显示数据曲线,X轴显示一个小时之内的数据点,每50ms一个数据点,也就是说一个小时是20*60*60=72000个点;在曲线形成的过程中,由于数据点的个数逐渐增加,效率会越来越低,内存占用逐渐上升。rn同样,在查询历史曲线时,如果对这一个小时的数据点进行缩放,平移等速度会相当慢,大家有遇到过类似的问题吗?求指教啊!多谢了!
如何提高导入大量数据的效率
rn原来采用的是用多台机器处理数据,处理完后一部分用存储过程导入,但考虑多台机器同时导入的话会降低服务器的处理性能,rnrn所以现在考虑每台机器建一个表,各自处理先导入到自己的表,全部完成后,再在查询分析器中先后insert到服务器,这样带来的唯一好处是可以使得数据按序导入,不会并发导入处理,并且都是一次性的,rnrn请问:rn1、采取现有方法会有效提高速度吗rnrn2、如果采用现有办法,使用"企业管理器"的"导出数据"功能,在效率上是否会比查询分析器中一次性insert来的快rnrn3、还有更好的办法提高导入大量数据的效率吗rnrn谢谢!
大量字符串的比较效率
string[] s1 长度为 100 000rnstring[] s2 长度为 10 000rnrn求 s2中有多少个元素在s1中存在 即 重复的数量rnrn用最原始的两两比较 10 000 * 100 000 次,需要很时间rnrn用什么手段可以达到效率最高?
大量数据统计效率问题
我要用后台存储过程统计一个数据量比较大的表,如统计客户的交易量,然后将结果保存到另一个表中,现在有两种方法:rn一种是:先选出所有客户,然后用游标进行单个统计,再插入结果表。rn另一种是:用一条复杂的SQL语句将所有客户及条件分组统计后插入结果表rn这两个方法哪个好啊,如果是第二种的话,数据库在处理海量数据时是不是一次的事务量太大了。多谢!
数据窗口查询大量数据的时候内存溢出
目前有这样需求,要在数据窗口中查询大量数据。大概有50W左右,显示出明细,可是PB程序提示出内存溢出就死掉了,这个如何解决?rnrn
android的socket效率出奇的低
有没有发现 android 的 socket 效率出奇的低?rnrn我一个InputStream.read(bytes) 都有可能长达300毫秒以上,有时候可以达到0.5秒. 简直了!!!!rn这实在是太慢了,不可接受,不可接受.不可以接受!!!rnrn编码都是比较常规的socket编码. 就那几行socket也没什么特殊写法.rn关键是他执行一个 InputStream.read(bytes) 为什么要那么长时间呢.rnrn
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview