oracle 减少对表的查询】的更多相关文章

在含有子查询的SQL语句中,要特别注意减少对表的查询. 例如: 低效 SELECT TAB_NAME FROM TABLES WHERE TAB_NAME = ( SELECT TAB_NAME FROM TAB_COLUMNS WHERE VERSION = 604) AND DB_VER= ( SELECT DB_VER FROM TAB_COLUMNS WHERE VERSION = 604) 高效 SELECT TAB_NAME FROM TABLES WHERE  (TAB_NAME,…
我们要做到不但会写SQL,还要做到写出性能优良的SQL语句. (1)选择最有效率的表名顺序(只在基于规则的优化器中有效): Oracle的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表.如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. (2)WHERE子句中…
oracle表复杂查询--子查询 什么是子查询? 子查询是指嵌入在其它sql语句中的select语句,也叫嵌套查询. 单行子查询 单行子查询是指只返回一行数据的子查询语句. 请思考:如果显示与smith同一部门的所有员工? SQL>select * from emp where deptno=(select deptno from emp where ename='SMITH'); 将SMITH排除在外不显示 SQL>select * from emp where deptno=(select…
转自:http://bbs.csdn.net/topics/370033478 对于Oracle中分页排序查询语句执行效率的比较分析 作者:lzgame 在工作中我们经常遇到需要在Oracle中进行分页.排序.查询的组合SQL语句,举例来说,通常我们会这样写:(假定表test中id是主键,并且id从1开始没有间断顺序排列) 1. SELECT * FROM (       SELECT id,a1,a2,a3,a4,a5,a6,a7,a8,a9, ROWNUM AS rn FROM test  …
  oracle 多字段去重查询 CreationTime--2018年6月29日15点11分 Author:Marydon 1.情景展示 需要对表BASE_MRI_DEVICE的COMPNAME.FIELDSTR.VERSION字段分别进行去重查询,如何使用一个sql搞定? 2.需求分析 注意:是分别对3个字段进行去重,而不是3个字段联合去重. 首先,必须进行三次查询,而将查询结果进行"行合并"需要用到union或union all: 其次,为了区分查询结果属于哪个字段,所以需要3列…
ASP.NET操作ORACLE数据库之模糊查询 一.ASP.NET MVC利用OracleHelper辅助类操作ORACLE数据库 //连接Oracle数据库的连接字符串 string connectionString = @"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP) (HOST=localhost) (PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=TestDB))); User…
记录通过执行Oracle的执行计划查询SQL脚本中的效率问题   问题现象: STARiBOSS5.8.1R2版本中,河北对帐JOB执行时,无法生成发票对帐文件.   首先,Quartz表达式培植的启动时间为2分钟执行一次JOB,通过日志上看,该JOB已经启动.且在开始统计发票信息后就没有新的日志了,因河北广电数据库很大,猜测是统计发票的SQL 效率低.在比较小的库上执行,系统正常生成发票对帐文件,因此确认猜测为正确的.   然后,将发票统计的SQL截取出来,其中一个SQL如下: select…
oracle数据库经典SQL查询 .查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name group by t.tablespace_name; .查看表空间物理文件的名称及大小 select tablespace_name, …
Oracle表的常用查询实验(一) 练习1.请查询表DEPT中所有部门的情况. select * from dept; 练习2.查询表DEPT中的部门号.部门名称两个字段的所有信息. select deptno,dname from dept; 练习3.请从表EMP中查询10号部门工作的雇员姓名和工资. select ename,sal from emp where deptno=10; 练习4.请从表EMP中查找工种是职员CLERK或经理MANAGER的雇员姓名.工资. select enam…
Mybatis oracle多表联合查询分页数据重复的问题 多表联合查询分页获取数据时出现一个诡异的现象:数据总条数正确,但有些记录多了,有些记录却又少了甚至没了.针对这个问题找了好久,最后发现是由于多个排序字段不唯一,同样的排序顺序每次运行返回的结果顺序不一致,导致这样的现象出现. SELECT TEMP_.* FROM (select temp.*, ROWNUM ROWNUM_ from (SELECT t2.ID FROM tableA t, tableB t2 WHERE t.ID =…
oracle 树形表结构排序 select * from Table start with parentid is null connect by prior id=parentid order SIBLINGS by FUNCTIONORDER ID NVARCHAR2 parentid NVARCHAR2 FUNCTIONNAME NVARCHAR2 FUNCTIONLEVEL FUNCTIONURL NVARCHAR2 ICONPATH NVARCHAR2 FUNCTIONORDER NV…
Oracle和MySQL分组查询GROUP BY 真题1.Oracle和MySQL中的分组(GROUP BY)有什么区别? 答案:Oracle对于GROUP BY是严格的,所有要SELECT出来的字段必须在GROUP BY后边出现,否则会报错:“ORA-00979: not a GROUP BY expression”.而MySQL则不同,如果SELECT出来的字段在GROUP BY后面没有出现,那么会随机取出一个值,而这样查询出来的数据不准确,语义也不明确.所以,作者建议在写SQL语句的时候,…
浅谈oracle树状结构层级查询 oracle树状结构查询即层次递归查询,是sql语句经常用到的,在实际开发中组织结构实现及其层次化实现功能也是经常遇到的,虽然我是一个java程序开发者,我一直觉得只要精通数据库那么对于java开发你就成功了三分之一,本篇中主要介绍start with...connect by prior .order by .sys_connect_by_path. 概要:树状结构通常由根节点.父节点.子节点和叶节点组成,简单来说,一张表中存在两个字段,dept_id,par…
本文来源:huang_xw 的<Oracle数据库的状态查询> 1 状态查询 启动状态 SQL语句 结果 nomount select status from v$instance; STARTED select open_mode from v$database; ERROR at line 1: ORA-01507: database not mounted mount select status from v$instance; MOUNTED select open_mode from…
参考文档:http://database.51cto.com/art/201108/288058.htm Oracle数据库日期范围查询有两种方式:to_char方式和to_date方式,接下来我们通过一个实例来介绍这一过程.我们假设要查询2011-05-02到2011-05-30之间的数据,实现方式如下: to_date方式: select * from tablename where time>= to_date('2011-05-02','yyyy-mm-dd') and time<=t…
--ORACLE PATCH 版本的查询 PL/SQL SELECT DD.PATCH_NAME,        PP.CREATION_DATE,        PP.DRIVER_FILE_NAME,        LANG.LANGUAGE  FROM AD_PATCH_DRIVERS PP,        AD_APPLIED_PATCHES DD,        AD_PATCH_DRIVER_LANGS LANG WHERE PP.APPLIED_PATCH_ID = DD.APPL…
  oracle 两表关联查询 CreationTime--2018年7月4日17点27分 Author:Marydon 情景描述 查询学生表student,sname,sex,age信息及所在班级clazz表 1.使用左连接 select sname, sex, age, cname from student t1 left join clazz t2 on t1.cid = t2.cid; 2.使用(+),oracle独有 select sname, sex, age, cname from…
oracle下session的查询与删除 1.查询当前session SQL> select username,sid,serial# from v$session where username is not null; USERNAME                              SID    SERIAL# ------------------------------ ---------- ---------- SYS                              …
Oracle笔记  多表查询   本次预计讲解的知识点 1. 多表查询的操作.限制.笛卡尔积的问题: 2. 统计函数及分组统计的操作: 3. 子查询的操作,并且结合限定查询.数据排序.多表查询.统计查询一起完成各个复杂查询的操作: 一.多表查询的基本概念 在之前所使用的查询操作之中,都是从一张表之中查询出所需要的内容,那么如果现在一个查询语句需要显示多张表的数据,则就必须应用到多表查询的操作,而多表查询的语法如下: SELECT [DISTINCT] * | 字段 [别名] [,字段 [别名]…
private string OracleSearchDemo(string cadqueueId) { string address = null; using (OracleConnection cn = GetOraConnection()) { string sqlGetAddress = "Select SvjDataAddress From Cadqueue Where CadqueueId = :CadqueueId"; OracleCommand cmd = new O…
oracle 根据时间字段查询数据 ROWNUM 是对前面查询的记录做限制,比如查询的记录 > 2000 条,那么只取前面的 2000 条 ''' SELECT * FROM (SELECT CLXXBH, JGSK, CDBH, HPHM, HPYS, SBBH, KKMC, WD, JD, CLLX, CSYS, HPZL, CLSD, WFXW, HPTP, QJTP, RKSJ, XSFX, KKID FROM WFXX.WFXX WHERE RKSJ >= TO_DATE('%s',…
oracle多表关联查询和子查询 一.多表关联查询 例子: SQL> create table student1 ( sid ), sname ), sage )); Table created. SQL> create table course1 ( sid ), cname ), cno )); Table created. student1表 SQL> select * from student1; SID SNAME SAGE --- ------ ---------- 李逍遥…
oracle表复杂查询 在实际应用中经常需要执行复杂的数据统计,经常需要显示多张表的数据,现在我们给大家介绍较为复杂的select语句 数据分组-max,min,avg,sum,count 如何显示所有员工中最高工资和最低工资 SQL>select max(sal) "最高工资",min(sal) "最低工资" from emp; 请查询最高年工资 SQL>select max(sal*13+nvl(comm,0)*13) "最高年工资&quo…
此文中用到的表是Scott用户中自带的三张表: 基本select语句 基本语法: select [distinct] *|{columnl,column2,column3..} from table [where {condition}]; select [是否剔除重复数据] *|{字段名(列名),字段名2(列名2),字段名3(列名3)..} from 表名 [where {条件}];注意事项: 1.select指定查询哪些列的数据: 2.column指定列名: 3.*代表查询所有列: 4.fr…
作者早期文章 Oracle优化 索引是表的一个概念部分 , 用来提高检索数据的效率, ORACLE 使用了一个复杂的自平衡 B-tree 结构 . 通常 , 通过索引查询数据比全表扫描要快 . 当 ORACLE 找出执行查询和 Update 语句的最佳路径时 , ORACLE 优化器将使用索引. 大部分的性能问题其实都是索引应用的问题,Where子句.Order By.Group By 都要用到索引.一般开发人员认为将索引建全了就可以下班回家了,实则还有颇多的思量和陷阱. 原则一:注意WHERE…
大数据量的查询,不仅查询速度非常慢,而且还会导致数据库经常宕机(刚接到这个项目时候,数据库经常宕机o(╯□╰)o). 那么,如何处理上亿级的数据量呢?如何从数据库经常宕机到上亿数据秒查?仅以此篇文章作为处理的总结. 数据背景:下面是存放历史数据表的数据量,数据量确实很大,3亿多条.但这也仅仅是测试数据而已,因为客户端服务器上的数据可能远不止于此. 为什么说远不止于此呢?实际情况是这样的: 有一个实时数据表,THTF_TABLE_AI,以及历史数据表,THTF_TABLE_AI_HIS 实时数据表…
概述: 当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区.表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个表空间(物理文件上),这样查询数据时,不至于每次都扫描整张表. 下面介绍如何使用分区增加查询效率 range分区:就是区域分区 CREATE TABLE SALE ( PRODUCT_ID ), SALE_COUNT ,) ) PARTITION BY RANGE (SALE_COUNT) ( PARTITION…
用户对表或视图最常进行的操作就是检索数据,检索数据可以通过 select 语句来实现,该语句由多个子句组成,通过这些子句完成筛选.投影和连接等各种数据操作,最终得到想要的结果. 语法: select { [ distinct | all ]  columns | * } [ into table_name ] from { tables | views | other select } [ where  conditions] [ group by columns ] [ having cond…
TOP-N查询(TOP-N分析):就是获取某一数据集合中的前N条记录,实际应用中经常用到. Oracle中不支持SELECT TOP语句(MySQL中也没用此语句),需要借助ROWNUM伪列来实现TOP-N查询. ROWNUM伪列:是Oracle数据库对查询结果自动添加的一个伪列,编号从1开始.ROWNUM在物理上(查询目标表中)并不存在,是每一次查询过程中动态生成的,所以称为“伪列”.因此,不允许以任何查询基表的名称做为前缀,连接查询中涉及多个物理表,但也只动态生成一个伪列. 1.非排序查询T…
direct path read深入解析 前言 最近碰到一件很奇葩的事情,因为某条SQL执行缓慢,原因是走了笛卡尔(两组大数据结果集),而且笛卡尔还是NL的一个部分,要循环31M次. 很容易发现是统计信息没有导致的,收集完就好了. 结果过了个51假期回来有人反馈其他的SQL慢了,看了下慢的SQL涉及到的表就刚好是上次收集统计信息的表. 统计问题SQL的历史执行情况,发现时间刚好在那天收集完后开始变慢.咋回事. 后边发现慢的原因是对收集的那两张表做全表扫描时候用了直接路径读(DPR).暂定为表A和…