关联-关于oracle中查询sql的优化

问题描述

关于oracle中查询sql的优化
在数据库中的某个表中有几百万条数据,现在要用这张表关联别的表去查询,查询速度很慢,如何优化才能使查询速度快一些。

解决方案

先优化SQL,然后再优化业务逻辑。最后优化数据库数据存储。
起码得把SQL贴出来看看吧,几百万的数据不算多呀。

解决方案二:
oracle的权值查询

解决方案三:
用一个相关联的ID,直接查那个表,这样就简单了!

时间: 2024-10-30 03:30:15

关联-关于oracle中查询sql的优化的相关文章

Oracle中的sql语句优化

1.选择最有效率的表名顺序(只在基于规则的优化器中有效)ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表driving table)将被最先处理,在FROM子句中包含多个表的情况下,必须选择记录条数最少的表作为基础表.如果有3个以上的表连接查询,那就需要选择交叉表(intersection table)作为基础表 , 交叉表是指那个被其他表所引用的表. 2.WHERE子句中的连接顺序ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理表

c# 从oracle中查询数据,设置时间参数问题,在线等

问题描述 c# 从oracle中查询数据,设置时间参数问题,在线等 各位大神,小弟刚接触c#时间不长,写了个程序,从界面上datatimepicker中取出时间,然后在c#代码的sql语句中设置时间参数,无论怎么设置要不就查不到数据,要不就是时间格式设置的不对,下面是代码 public DataTable QueryUsedMaterial(string classgroup, string beginTime, string endTime) { string sql_QueryMateria

在oracle中查询xml表列内容显示不全,为什么???

问题描述 在oracle中查询xml表列内容显示不全,为什么??? 建立了一个包含xml列的表,也成功插入了xml项,但是用查询语句显示不全xml的内容,不知道为啥?? CREATE TABLE employees( eid int primary key, einfo xmltype ); insert into employees values(1,XMLType(bfilename('XMLDIR', 'einfoTest.xml'),nls_charset_id('GB2312') ))

Oracle中PL/SQL中if语句的写法介绍

以下是对Oracle中PL/SQL中if语句的写法进行了详细的分析介绍,需要的朋友可以过来参考下   复制代码 代码如下: /* If语句: 判断用户输入的数字. */ set serveroutput on --接收键盘输入 accept num prompt '请输入一个数字:'; declare   --将屏幕输入的数字付给变量   pnum number := # begin   if pnum = 0 then dbms_output.put_line('您输入的是0');   end

关于oracle中的sql数据类型

数据类型对于每一种编程语言而言都是数据存储的基础,对于编程语言的实现功能而言也是一个标尺,有些编程语言可能数据类型很丰富,比如java,c,在数据计算方面的支持很全面,有些编程比较精简,更侧重于实现特定的功能,数据类型也就简单得多.比如说shell. 对于oracle中的sql来说,数据类型的支持非常全面,无论是数据计算还是复杂的业务逻辑封装需要,数据类型的支持都是内置和可扩展的.可以根据需要来选择. 目前oracle的数据类型分类大体有如下的结构. 用户自定义类型,基本上都是由type来实现,

Oracle中解析SQL语句的过程

为了将用户写的SQL文本转化为Oracle认识的且可执行的语句,这个过程就叫做解析过程.解析分为硬解析和软解析.一条SQL语句在第一次被执行时必须进行硬解析. 当客户端发出一条SQL语句(也可以是一个存储过程或者一个匿名PL/SQL块)进入shared pool时(注意,我们从前面已经知道,Oracle对这些SQL不叫做SQL语句,而是称为游标.因为Oracle在处理SQL时,需要很多相关的辅助信息,这些辅助信息与SQL语句一起组成了游标), Oracle首先将SQL文本转化为ASCII值,然后

oracle中动态SQL使用详细介绍_oracle

1.静态SQLSQL与动态SQL Oracle编译PL/SQL程序块分为两个种:其一为前期联编(early binding),即SQL语句在程序编译期间就已经确定,大多数的编译情况属于这种类型:另外一种是后期联编(late binding),即SQL语句只有在运行阶段才能建立,例如当查询条件为用户输入时,那么Oracle的SQL引擎就无法在编译期对该程序语句进行确定,只能在用户输入一定的查询条件后才能提交给SQL引擎进行处理.通常,静态SQL采用前一种编译方式,而动态SQL采用后一种编译方式.

SQL Server中的SQL语句优化与效率问题

很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解.比如: select * from table1 where name='zhangsan' and tID > 10000 和执行: select * from table1 where tID > 10000 and name='zhangsan' 一些人不知道以上两条语句的执行效率是否一样,因为如果简单的从语句先后上看,这两个语句的确是不一样,如果tID是一个聚合索引,那

ORACLE中查询第n条到第m条的数据记录的方法

一.经过测试,下面的方法通过:   SELECT * FROM             (                  SELECT 表名.*, ROWNUM AS CON FROM 表名 WHERE ROWNUM <= M AND 其它查询条件 ORDER BY 排序条件              )WHERE CON >=N;   二.参考其它网上的方法   SQL/Oracle取出第 m 条到第 n 条记录的方法   用一句SQL取出第 m 条到第 n 条记录的方法 用一句SQL取