oracle查询结果存入临时表,Oracle查询问题引发临时表使用

分析某段时间内,刷卡金额大于1000的卡的消费记录,写法如下。

sql语句写法:select a.dno,a.dcard,a.dcard_money,a.dcard_type,a.ddate, a.dsubshop,a.dworker,a.dtype,j.Djf Dnowjf,b.dsje,B.Dcount

from st_card_salemx a,

( select m.dcard,Count(1) Dcount,Sum(dcard_money) dsje

from st_Card_Salemx m

where ddate >= to_Date('2016-7-17','yyyy-mm-dd')

and Ddate <= to_Date('2016-7-19','yyyy-mm-dd')

and dcard_type <> '06'

group by m.dcard

having Sum(dcard_money) >= 1000 ) b,st_card_jf j

where a.dcard = b.dcard and b.dcard = j.dcardno

and a.ddate >= to_Date('2016-7-17','yyyy-mm-dd')

and a.Ddate <= to_Date('2016-7-19','yyyy-mm-dd')

order by 2

问题:刚开始使用的时候,3分钟可以出结果,用了一年以后,40分钟都还没有出结果。Dcard是主键,Ddate有索引,原因不明。有谁知道原因的请回复,十分感谢。

我的解决办法:1、对子查询b生成临时表,用的时候往临时表中写入数据,查询完成即删除。

创建临时表Create Global Temporary Table b(dcard varchar(20),dcount int,dsje numeric(12,2) )On Commit Preserve Rows;

2、这样上面的查询语句改为

select a.dno,

b,'yyyy-mm-dd')

order by 2

3、查询。在程序中先启动事务,往b表中写入数据(就是子查询的内容),执行查询,回滚事务。这样数据就能正确的显示,并且速度很快,效率很高。

虽然问题得到了解决,但是原因未查明,请求指点。

按以上方法问题得到解决,现在只需要6秒即可得到结果。

备注:临时表比较

sqlserver:分本地临时表仅在当前会话中可见;全局临时表在所有会话中都可见。本地临时表的名称前面有一个编号符 (#table_name),而全局临时表的名称前面有两个编号符 (##table_name)。表结构是临时的,会话结束或者重启服务之后,临时表即消失。

Oracle:表结构是永久的,重启服务也依然存在,除非显式drop table。

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/559155.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

排序之--选择排序

所谓选择排序&#xff0c;就是将数组中的最大值&#xff0c;或者最小值选出来。public class xuanze{public void maoPao(int []arr) {for(int i 0; i < arr.length-1;i) {int min i; //容易出错for(int j i1;j < arr.length;j) {// 这里也要区分冒…

oracle状态blocked,oracle 监听状态为BLOCKED

静态监听的状态是UNKNOWN。当数据库状态是OPEN时&#xff0c;动态监听是READY&#xff1b;当数据库状态是NOMOUNT时&#xff0c;动态监听状态是BLOCKED。LSNRCTL> statusConnecting to (DESCRIPTION(ADDRESS(PROTOCOLTCP)(HOST192.168.10.65)(PORT1521)))STATUS of the LIST…

插入排序--~

插入排序&#xff0c;顾名思义&#xff0c;就是先把前面的数排好&#xff0c;后面的数来一个就插入一个&#xff0c;来一双就插入两个~&#xff08;按顺序拍~&#xff09;public class daJiMu {public void maoPao(int []arr) {for(int i 1;i < arr.length;i) {for(int j …

oracle 12c alert,Oracle 12c DG备库Alert报错ORA-01110

环境是12.2.0.1 version, Oracle Data Guard备库今天故障恢复了一下&#xff0c;RMAN恢复后发现备库Alert一直报错&#xff0c;但是备库主库同步一致&#xff0c;数据一致。2018-07-05T23:42:22.18404808:00Errors in file /u01/app/oracle/diag/rdbms/dwjrstdydb/dwjrstdydb/t…

蓝桥杯大赛基础之--数列排序

题目&#xff1a;数列排序 问题描述  给定一个长度为n的数列&#xff0c;将这个数列按从小到大的顺序排列。1<n<200输入格式  第一行为一个整数n。  第二行包含n个整数&#xff0c;为待排序的数&#xff0c;每个整数的绝对值小于10000。输出格式  输出一行&#…

linux窗帘文件夹命令,窗帘面板和电机 · 控客智能家居 Linux SDK 使用手册 · 看云...

## 开关停| OPEN | CLOSE | STOP || --- | --- | --- || 开 | 关 | 停 |### 请求json{"nodeId": "100","opcode": "SWITCH","arg": "OPEN","requester": "HJ_Server"}### 响应json{"nod…

关于maven面试的哪些事儿~

maven是什么&#xff1f; 优点&#xff1a; 1. Maven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期框架。 2. 在多个开发团队环境时&#xff0c;Maven可以设置按标准在非常短的时间里完成配置工作&#xff0c;使开发人员的工作更加轻松。 3. Maven增加…

0640权限linux啥意思,linux系统rwx(421)、777权限详解

摘要linux的常见权限&#xff0c;mark一下常用的linux文件权限如下&#xff1a;r--r--r--rw-------rw-r--r--rw-rw-rw-rwx------rwxr--r--rwxr-xr-xrwxrwxrwx12345678从左至右&#xff0c;先是3个数字&#xff0c;代表文件的权限然后是9个字母(或者连字符)其中 1-3位数字代表文…

spring常见术语理解

SpringMVC工作流程&#xff1a;流程 1、用户发送请求至前端控制器DispatcherServlet 2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、处理器映射器找到具体的处理器&#xff0c;生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 …

linux 智联 网卡设置,Linux初学者DNS配置指南(四)配置Bind常见问题

手把手教你如何配置Linux下的DNS(四)配置Bind常见问题一&#xff0e;rndc:connect failed: connection refused错误1.1.问题发生&#xff1a;配置DNS完成后&#xff0c;输入命令重启DNS服务使配置生效&#xff1a;/etc/rc.d/init.d/namedrestart或rdnc status出现rndc: connect…

mybatis那些事~

http://blog.csdn.net/qq_33824312/article/details/737710081.JDBC编程有哪些不足之处&#xff0c;MyBatis是如何解决这些问题的&#xff1f;①数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能&#xff0c;如果使用数据库链接池可解决此问题。解决&#xff1a;在Sq…

linux绑定team网卡,linux 实现双网卡绑定单个IP——team篇

1、安装teamd[rootweb01 ~]# yum -y install teamd2、停止NetworkManager什么是NetworkManager呢&#xff1f;NetworkManager服务是管理和监控网络设置的守护进程&#xff0c;CentOS7更加注重使用NetworkManager服务来实现网络的配置和管理&#xff0c;CentOS7以前是通过networ…

postman新手使用教程

postman原理解析&#xff1a; 1。 在 postman中输入请求地址&#xff0c;并点击send按钮&#xff1b; 2. 对应的应用服务器收到该请求&#xff0c;并且返回对应的响应报文&#xff0c;并通过友好的可视化界面显示在界面上。

linux ssh服务,Linux配置SSH服务以便实现远程连接

Linux用户们一定想要知道该怎么开启SSH服务吧&#xff0c;SSH服务是Linux系统远程连接的重要方式&#xff0c;所以如何配置SHH服务也让很多用户感到纠结。现在小编就帮大家解决这个问题。配置方法&#xff1a;查询\安装SSH服务1.登陆linux系统&#xff0c;打开终端命令。输入 r…

玄学········为什么在eclipse上更改程序之后运行之后好像没更改一样

更改了半天&#xff0c;保存的了很多次&#xff0c;错误也改掉了&#xff0c;但是还是报同一个错误&#xff0c;很痛苦~搜了半天&#xff0c;终于搞定了&#xff0c;方法总结如下&#xff1a;一 可能是有一些文件没报存&#xff0c;设置让其自动保存&#xff1a;1 Windows-&g…

linux 用dg分区,[bug报告] 兼容性问题,mbr硬盘使用分区扩容后linux系统不认分区...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼原本机械硬盘A装了windowslinux双系统(mbr)如下&#xff1a;sda1&#xff1a;充当windows系统的C盘sda2&#xff1a;充当windows系统的D盘sda3&#xff1a;充当linux系统的启动盘 /bootsda4&#xff1a;充当linux系统的根目录 /后来…

转圈打印矩阵~~

下面附上程序&#xff0c;欢迎各位前来讨论&#xff1a; package jian_zhi_offer;public class code29_PrintMatrixClockWisely {public static void main(String args[]) {int arr[][] { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } };printMatrix(arr);}/* 这个函数…

linux pe大小,lvm中的pe默认是4M 最大能支持多大 1T?2T

看下手册就知道了。古老的lvm1格式&#xff0c;有网上流传很广的说法&#xff0c;256G限制。如果是lvm2格式的&#xff0c;基本无限制&#xff0c;限制在于服务器本身的对硬盘的识别和cpu是32还是64&#xff0c;另一个就是系统的内核版本&#xff0c;2.4前的限制2T以下手册原文…

“之”字形打印矩阵~

编程如下&#xff1a; 欢迎大家前来讨论~ public class PrintMatirx { public static void main(String args[]) { int arr[][] { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } }; printZigMatrix(arr); } public static void printZigMatrix(int arr[][]) { int row1 …

linux设备probe,你了解Embeded linux中的probe

一、基于linux-3.18.20、mac驱动二、启动时机&#xff1a;所谓的"probe”&#xff0c;是指在Linux内核中&#xff0c;如果存在相同名称的device和device_driver&#xff0c;内核就会执行device_driver中的probe回调函数&#xff0c;而该函数就是所有driver的入口&#xff…