- 浏览: 94569 次
- 性别:
- 来自: 福州
-
最新评论
-
JonHans:
...
ORALCE /*+NO_EXPAND*/ 含义 -
sangli:
Alter table table parallel 4;
...
oracle parallel execution example -
Ivan.t:
不会这么巧吧?你是银钦?http://ivanstudy.bl ...
Oracle Raw,number,varchar2...转换 -
Christ:
那么,如何使用Hibernate存取RAW?显然 我无法使用u ...
Oracle Raw,number,varchar2...转换 -
bianxq:
执行计划没有变化,说明你的并行提示被忽略掉了。检查你的书写和系 ...
oracle parallel execution example
PUSH_SUBQ 可以用来控制子查询的执行 这个是PUSH_SUBQ 的本意
我那个例子的意思是说:
PUSH_SUBQ 本质上是个CBO的hints(当然RBO也提不上hints)
由于PUSH_SUBQ 的引入就是为了来解决unnesting的某些不足
所以在不同的版本上,这个hints发挥的作用也有所不同了.
8i上这个提示的作用更接近本原:
$ sqlplus "/ as sysdba"
SQL*Plus: Release 8.1.5.0.0 - Production on Sun Sep 12 20:51:21 2004
(c) Copyright 1999 Oracle Corporation. All rights reserved.
Connected to:
Oracle8i Enterprise Edition Release 8.1.5.0.0 - Production
With the Partitioning and Java options
PL/SQL Release 8.1.5.0.0 - Production
SQL> connect scott/tiger
Connected.
SQL> create table dept1 as select * from dept;
Table created.
SQL> set linesize 120
SQL> select a.*
2 from emp a,dept b where a.deptno = b.deptno and exists (select 1 from dept1 where dept1.dname = b.dname);
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-DEC-80 800 20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7566 JONES MANAGER 7839 02-APR-81 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7839 KING PRESIDENT 17-NOV-81 5000 10
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7876 ADAMS CLERK 7788 23-MAY-87 1100 20
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7900 JAMES CLERK 7698 03-DEC-81 950 30
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10
14 rows selected.
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT ptimizer=CHOOSE
1 0 FILTER ---------------'最初push_subq的使命是为了消除/提高这个filter的效率的'
2 1 NESTED LOOPS
3 2 TABLE ACCESS (FULL) OF 'EMP'
4 2 TABLE ACCESS (BY INDEX ROWID) OF 'DEPT'
5 4 INDEX (UNIQUE SCAN) OF 'PK_DEPT' (UNIQUE)
6 1 TABLE ACCESS (FULL) OF 'DEPT1'
Statistics
----------------------------------------------------------
0 recursive calls
52 db block gets
21 consistent gets
0 physical reads
0 redo size
2715 bytes sent via SQL*Net to client
751 bytes received via SQL*Net from client
4 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
14 rows processed
用于push_subq是个CBO hints,这里我们可以看到COST的出现:
SQL> select /*+ push_subq */ a.*
2 from emp a,dept b where a.deptno = b.deptno and exists (select 1 from dept1 where dept1.dname = b.dname);
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7839 KING PRESIDENT 17-NOV-81 5000 10
7934 MILLER CLERK 7782 23-JAN-82 1300 10
7369 SMITH CLERK 7902 17-DEC-80 800 20
7566 JONES MANAGER 7839 02-APR-81 2975 20
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7876 ADAMS CLERK 7788 23-MAY-87 1100 20
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7900 JAMES CLERK 7698 03-DEC-81 950 30
14 rows selected.
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT ptimizer=CHOOSE (Cost=3 Card=1 Bytes=122)
1 0 NESTED LOOPS (Cost=3 Card=1 Bytes=122)
2 1 TABLE ACCESS (FULL) OF 'DEPT' (Cost=1 Card=2 Bytes=44)
3 2 TABLE ACCESS (FULL) OF 'DEPT1' (Cost=1 Card=1 Bytes=9)--------'这里消除了之前的filter'
4 1 TABLE ACCESS (FULL) OF 'EMP' (Cost=1 Card=21 Bytes=2100)
Statistics
----------------------------------------------------------
204 recursive calls
85 db block gets
38 consistent gets
0 physical reads
0 redo size
2706 bytes sent via SQL*Net to client
768 bytes received via SQL*Net from client
4 SQL*Net roundtrips to/from client
5 sorts (memory)
0 sorts (disk)
14 rows processed
再看CBO下:
正常情况下,没什么好说的:
SQL> set autotrace traceonly
SQL> exec dbms_stats.gather_schema_stats('SCOTT')
PL/SQL procedure successfully completed.
SQL> select a.*
2 from emp a,dept b where a.deptno = b.deptno and exists (select 1 from dept1 where dept1.dname = b.dname);
14 rows selected.
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT ptimizer=CHOOSE (Cost=2 Card=5 Bytes=275)
1 0 FILTER
2 1 NESTED LOOPS (Cost=2 Card=5 Bytes=275)
3 2 TABLE ACCESS (FULL) OF 'DEPT' (Cost=1 Card=1 Bytes=18)
4 2 TABLE ACCESS (FULL) OF 'EMP' (Cost=1 Card=14 Bytes=518)
5 1 TABLE ACCESS (FULL) OF 'DEPT1' (Cost=1 Card=1 Bytes=9)
Statistics
----------------------------------------------------------
39 recursive calls
68 db block gets
21 consistent gets
0 physical reads
0 redo size
2708 bytes sent via SQL*Net to client
751 bytes received via SQL*Net from client
4 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
14 rows processed
在CBO下push_subq发挥了同样的作用:
SQL> select /*+ push_subq */ a.*
2 from emp a,dept b where a.deptno = b.deptno and exists (select 1 from dept1 where dept1.dname = b.dname);
14 rows selected.
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT ptimizer=CHOOSE (Cost=2 Card=5 Bytes=275)
1 0 NESTED LOOPS (Cost=2 Card=5 Bytes=275)
2 1 TABLE ACCESS (FULL) OF 'DEPT' (Cost=1 Card=1 Bytes=18)
3 2 TABLE ACCESS (FULL) OF 'DEPT1' (Cost=1 Card=1 Bytes=9)---'注意这里'
4 1 TABLE ACCESS (FULL) OF 'EMP' (Cost=1 Card=14 Bytes=518)
Statistics
----------------------------------------------------------
0 recursive calls
84 db block gets
11 consistent gets
0 physical reads
0 redo size
2709 bytes sent via SQL*Net to client
768 bytes received via SQL*Net from client
4 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
14 rows processed
而在Oracle9i之中:
[oracle@jumper oracle]$ sqlplus "/ as sysdba"
SQL*Plus: Release 9.2.0.3.0 - Production on Sun Sep 12 21:42:57 2004
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.3.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.3.0 - Production
SQL> connect scott/tiger
Connected.
SQL> set linesize 120
SQL> set autotrace traceonly
SQL> select a.*
2 from emp a,dept b where a.deptno = b.deptno and exists (select 1 from dept1 where dept1.dname = b.dname);
11 rows selected.
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT ptimizer=CHOOSE
1 0 FILTER
2 1 NESTED LOOPS
3 2 TABLE ACCESS (FULL) OF 'EMP'
4 2 TABLE ACCESS (BY INDEX ROWID) OF 'DEPT'
5 4 INDEX (UNIQUE SCAN) OF 'PK_DEPT' (UNIQUE)
6 1 TABLE ACCESS (FULL) OF 'DEPT1'
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
26 consistent gets
0 physical reads
0 redo size
1164 bytes sent via SQL*Net to client
503 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
11 rows processed
SQL> select /*+ push_subq */ a.*
2 from emp a,dept b where a.deptno = b.deptno and exists (select 1 from dept1 where dept1.dname = b.dname);
11 rows selected.
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT ptimizer=CHOOSE (Cost=8 Card=82 Bytes=9676)
1 0 HASH JOIN (SEMI) (Cost=8 Card=82 Bytes=9676)
2 1 HASH JOIN (Cost=5 Card=82 Bytes=8938)
3 2 TABLE ACCESS (FULL) OF 'EMP' (Cost=2 Card=82 Bytes=7134)
4 2 TABLE ACCESS (FULL) OF 'DEPT' (Cost=2 Card=82 Bytes=1804)
5 1 TABLE ACCESS (FULL) OF 'DEPT1' (Cost=2 Card=82 Bytes=738)
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
10 consistent gets
0 physical reads
0 redo size
1195 bytes sent via SQL*Net to client
503 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
11 rows processed
SQL> exec dbms_stats.gather_schema_stats('scott')
PL/SQL procedure successfully completed.
SQL> select a.*
2 from emp a,dept b where a.deptno = b.deptno and exists (select 1 from dept1 where dept1.dname = b.dname);
11 rows selected.
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT ptimizer=CHOOSE (Cost=8 Card=11 Bytes=682)
1 0 HASH JOIN (SEMI) (Cost=8 Card=11 Bytes=682)
2 1 HASH JOIN (Cost=5 Card=11 Bytes=572)
3 2 TABLE ACCESS (FULL) OF 'DEPT' (Cost=2 Card=4 Bytes=52)
4 2 TABLE ACCESS (FULL) OF 'EMP' (Cost=2 Card=11 Bytes=429)
5 1 TABLE ACCESS (FULL) OF 'DEPT1' (Cost=2 Card=4 Bytes=40)
Cou
发表评论
-
[译] PL/SQL 格式化指南 (PL/SQL Formatting Guide)
2009-11-30 17:03 1715最近一直在修改以前同事写的Oracle存储过程,由于编码不规范 ... -
Oracle Raw,number,varchar2...转换
2009-09-17 11:24 7851Oracle Raw,number,varchar2... ... -
Oracle's Query Transformer
2009-09-09 17:56 1138Oracle's Query Transformer O ... -
观察analyze table compute statistics 都对什么对象统计了信息
2009-09-08 12:52 10454观察analyze table compute statis ... -
sql 语句中or条件之种种情况
2009-09-08 10:55 1824sql 语句中or条件之种种情况 1、相同字段or条件 ... -
/*+ precompute_subquery */子查询中的提示
2009-09-08 10:51 1508QUOTE:------------------------- ... -
关于绑定变量的一点心得
2009-09-08 10:03 1289我们一直在告诉开发人员一定要使用绑定变量,而你是否真正了解 ... -
查询--驱动表
2009-08-24 10:58 1242查询中何为驱动表阿? ... -
SQL连接驱动表帖子
2009-08-24 10:08 2462http://www.itpub.net/v ... -
Oracle中巧用CTAS快速建立表格
2009-08-21 15:55 1417CTAS是通过查询,然后根 ... -
优化SQL语句的一些规则
2009-08-20 21:01 1443大家都在讨论关于数据 ... -
oracle中关于in和exists,not in 和 not exists、关联子查询、非关联子查询
2009-08-20 15:01 5316oracle中关于in和e ... -
Oracle的大表,小表与全表扫描
2009-08-20 11:11 1347通常对于小表,Oracle建议通过全表扫描进行数据访问,对于大 ... -
reverse函数与like % 的使用
2009-08-19 18:03 1244oracle 提供一个reverse函数,可以实现将一个对象反 ... -
Oracle语句优化规则汇总(二)
2009-08-19 15:14 7231. 用UNION替换OR (适用于 ... -
Oracle语句优化规则汇总(一)
2009-08-19 15:07 876Oracle sql 性能优化调整 1. 选用适合的OR ... -
几种索引扫描方式
2009-08-19 14:47 15571)索引唯一扫描 如果查询时是通过unique或primary ... -
oracle不使用索引原因定位
2009-08-19 11:36 1681较典型的问题有:有时,表明明建有索引,但查询过程显然没有 ... -
列定义是否为空对COUNT(*)操作索引选择的影响
2009-08-19 11:28 1256SQL> desc test; Name ... -
ORALCE /*+NO_EXPAND*/ 含义
2009-08-18 11:02 3047求教 ORALCE /*+NO_EXPAND*/ 含义 是什么 ...
相关推荐
- `NO_PUSH_SUBQ`:指示不将子查询下推到表访问操作。 - `PX_JOIN_FILTER`:指示并行执行时的连接过滤。 - `NO_PX_JOIN_FILTER`:指示并行执行时不使用连接过滤。 - `NO_XML_QUERY_REWRITE`:指示不进行XML查询...
3. **索引提示**:查询开头的`/*+ PUSH_SUBQ */`是一个索引提示,它告诉数据库优化器如何处理子查询,以提高查询性能。 ### 结论 通过上述SQL查询,我们可以有效地监控和分析数据库中存储过程的执行情况及其对系统...
- **PUSH_SUBQ**: 将子查询尽可能早地执行。 - **NO_MERGE(v)** 和 **MERGE(v)**: 控制视图是否合并到父查询中。 - **HASH_AJ(v)** 和 **MERGE_AJ(v)**: 控制使用散列反连接或合并反连接处理NOT IN子查询。 - **HASH...
- **注意事项**: 使用了提示`/*+PUSH_SUBQ*/`来优化查询性能,并通过输入参数`&sid`来指定查询的会话SID。 ### 4. 查询对象被访问的情况 **SQL语句**: ```sql SELECT p.Spid, s.Sid, s.Serial# Serial_Num, s....
cmd-bat-批处理-脚本-98下获取当前路径.zip
cmd脚本-bat批处理-去掉字符串不同部位的空格.zip
25年上半年湖师大学位报考附件.zip
cmd-bat-批处理-脚本-清空指定大小的文件夹.zip
这是一份关于基础图像增强代码的整理,共包含六种常见的图像增强方法,分别是三种Retinex图像增强方法、灰度拉伸、直方图均衡化以及自适应直方图均衡化。这些代码经过验证,均可正常运行,能够帮助用户节省寻找相关代码的时间,从而更专注于自身的实验 。
cmd-bat-批处理-脚本-局域网扫描.zip
首先,利用已有的人脸检测算法对图像进行人脸检测。检测完成后,将检测到的每个人脸单独切割出来,并进行是否戴口罩的二分类判断。在进行分类之前,需要对图像中的人脸进行标注,标注内容包括戴口罩和不戴口罩两种情况。对于标注好的人脸图片,佩戴口罩的人脸图片命名为mask_1,未佩戴口罩的人脸图片命名为nomask_1。当数据集准备完毕后,可以使用train.py文件进行训练。关于训练效果及详细解读,可以参考哔哩哔哩上的视频,视频链接为:基于深度学习的口罩佩戴检测。
内容概要:本文主要介绍了MySQL元数据的概念及其获取方式。MySQL元数据是关于数据库和其对象(如表、列、索引等)的信息,存储在系统表中,这些表位于information_schema数据库中。文章详细列举了多种常用的MySQL元数据查询命令,如查看所有数据库(SHOW DATABASES)、选择数据库(USE database_name)、查看数据库中的所有表(SHOW TABLES)、查看表的结构(DESC table_name)、查看表的索引(SHOW INDEX FROM table_name)、查看表的创建语句(SHOW CREATE TABLE table_name)、查看表的行数(SELECT COUNT(*) FROM table_name)、查看列的信息以及查看外键信息等。此外,还介绍了information_schema数据库中的多个表,包括SCHEMATA表、TABLES表、COLUMNS表、STATISTICS表、KEY_COLUMN_USAGE表和REFERENTIAL_CONSTRAINTS表,这些表提供了丰富的元数据信息,可用于查询数据库结构、表信息、列信息、索引信息等。最后,文章还给出了获取查询语句影响的记录数的Perl和PHP实例,以及获取数据库和数据表列表的方法。 适合人群:对MySQL数据库有一定了解,想要深入学习MySQL元数据获取和使用的数据库管理员或开发人员。 使用场景及目标:①帮助用户掌握MySQL元数据的获取方法,以便更好地管理和维护数据库;②通过查询information_schema数据库中的系统表,深入了解数据库结构、表信息、列信息、索引信息等;③提供Perl和PHP实例,方便用户在不同编程环境中获取查询语句影响的记录数和数据库及数据表列表。 其他说明:在使用上述SQL语句时,请注意将查询中的'your_database_name'和'your_table_name'替换为实际的数据库名和表名。此外,在获取数据库和数据表列表时,如果没有足够的权限,结果将返回null。
cmd-bat-批处理-脚本-实现延时不完全总结.zip
经验模态分解(Empirical Mode Decomposition,EMD)是一种基于数据的信号处理技术,由Nigel Robert Hocking在1998年提出,主要用于分析非线性、非平稳信号。它能够将复杂的信号自适应地分解为若干个本征模态函数(Intrinsic Mode Function,IMF),每个IMF代表信号中不同的频率成分和动态特征。在MATLAB环境下实现EMD去噪,通常包括以下步骤: 信号预处理:对原始信号进行预处理,例如平滑处理或去除异常值,以提高后续分解的准确性。 EMD分解:利用EMD算法对预处理后的信号进行分解,将其拆分为多个IMF和一个残余项。每个IMF对应信号的一个内在频率成分,而残余项通常包含低频或直流成分。 希尔伯特变换:对每个IMF进行希尔伯特变换,计算其瞬时幅度和相位,形成希尔伯特谱,从而更直观地分析信号的时频特性。 去噪策略:常见的去噪策略有两种。一种是根据IMF的频率特性,选择保留低频或高频部分,去除噪声;另一种是利用IMF的Hurst指数,噪声IMF的Hurst指数通常较低,因此可以去除Hurst指数低于阈值的IMF。 重构信号:根据保留的IMF和残余项,通过逆希尔伯特变换和累加,重构出去噪后的信号。 Hurst分析:Hurst指数是评估时间序列长期依赖性的指标,用于区分随机性和自相似性。在EMD去噪中,Hurst分析有助于识别噪声IMF,从而提升去噪效果。 在提供的压缩包中,“license.txt”可能是软件的许可协议文件,用户需遵循其条款使用代码。“EMD-DFA”可能是包含EMD去噪和去趋势波动分析(Detrended Fluctuation Analysis,DFA)的MATLAB代码。DFA是一种用于计算信号长期自相关的统计方法,常与EMD结合,进一步分析信号的分形特征,帮助识别噪声并优化去噪效果。该MATLA
通过Python实现一个改进型ACO算法,并探讨其在多维函数优化中的应用,为工程优化问题提供新的解决思路。
cmd-bat-批处理-脚本-枚举显示.zip
python实现爬取网络图片爬虫,亲测可用
本文件包含随机森林算法的代码实现、对应的数据集以及详细的中文注释,且代码已经经过调试并能正常运行。文件中有两份代码:一份是从网上下载的,另一份是经过自己整理并重新编写的。编程环境是Python 2.7。由于主要目的是用于学习随机森林算法,所以在参数调整方面没有花费太多精力,因此模型的正确率可能并不高。当然,数据集规模较小也是影响正确率的一个因素。如果有兴趣的同学可以自行调整参数,以提高模型的准确率。
DXCG分析与原理04
1743390592614.osm