对pl/sql 语句的优化(上集)
对这个进行优化
select n5001 门店,n5002 部门,n5004 小分类,n5019 商品编码,c01d21 商品名称,
nvl(xse,0)-nvl(dzxs,0) 销售,
mle 毛利,
nvl(xl,0)-nvl(dzsl,0) 销量
from
(select n5001,n5002,n5004,n5019,sum(n5011) xse,sum(n5016) mle,sum(n5023) xl
from n50
where to_char(n5010,'yyyymmdd')>='20100401'
and to_char(n5010,'yyyymmdd')<='20100431'
group by n5001,n5002,n5004,n5019),
(select g08,g09,g02,sum(g03*g07) dzxs,sum(G03) dzsl from batchgoods
where to_char(g04,'yyyymmdd')>='20100401'
and to_char(g04,'yyyymmdd')<='20100431'
group by g08,g09,g02),c01d
where n5001=g08(+)
and n5019=g02(+)
and n5001=c01d00(+)
and n5019=c01d01(+)
执行计划
SELECT STATEMENT, GOAL = CHOOSE Cost=10060 Cardinality=3931 Bytes=475651
MERGE JOIN OUTER Cost=10060 Cardinality=3931 Bytes=475651
SORT JOIN Cost=8063 Cardinality=3931 Bytes=338066
NESTED LOOPS OUTER Cost=7952 Cardinality=3931 Bytes=338066
VIEW Object owner=FZDC Cost=4015 Cardinality=3931 Bytes=239791
SORT GROUP BY Cost=4015 Cardinality=3931 Bytes=149378
TABLE ACCESS FULL Object owner=FZDC Object name=N50 Cost=3955 Cardinality=3931 Bytes=149378
TABLE ACCESS BY INDEX ROWID Object owner=FZDC Object name=C01D  
相关文档:
1. 安装oracle 10G客户端
要访问oracle数据库必须安装oracle客户端。安装oracle客户端有两种方式,即完整安装和立即安装,这两种方式都可以。安装完后配置要链接数据库服务器。
$ORACLE_HOME\network\admin\tnsname.ora
在此配置文件里添加如下内容:
sunora =
(DESCRIPTION =
......
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_convert]') and xtype in (N'FN', N'IF', N'TF'))&n ......
分布式查询
OPENROWSET
从Excel取数据
SELECT * from OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=d:\1.xls',[Sheet1$])
从Oracle取数据
SELECT * from OPENROWSET('MSDAORA.1','NetServiceName ......
【SQL】行列转换
http://space.itpub.net/519536/viewspace-609167
一、列变行
1.创建测试表test,并初始化实验数据
sec@ora10g> create table test (name_id varchar2(10), name varchar2(10));
sec@ora10g> insert into test values ('01','Andy1');
sec@ora10g> insert into test values ('01','Andy2'); ......
1.
SQL> desc gjh_a05 ;
Name Type Nullable Default Comments
----- ------------- -------- ------- --------
A0500 VARCHAR2(2) Y &nbs ......