Ⅰ PL/sql with as 用法。
两个条件放一起写啊,select count(1),count(case when topsap >=2 then 1 else null end ) from tmp,或者你前面那个with as重复写一遍加在第二句上
Ⅱ PLSQL Developer登录时没有connect as(连接为)
plsql下面connect as如果是sysdba就会这样,正常应该是normal 我从来没有遇到错误密码可以登录的这种情况 重新下个PLSQL Developer 试试
Ⅲ 如何修改plsql日期显示格式
在控制面板的区域和语言设置里的,区域选项里的自定义-日期里面修改格式
plsql里的工具 首选项 sql窗口 日期字段 to_char去掉 ,还不行的话点下面的实例查询中的自动包含,多试几次就好了
Ⅳ 关于PLSQL中null的问题
使用IS NULL/IS NOT NULL判断是否为NULL。
if name1 is null then
if name1 is not null then
Ⅳ PLSQL的SQL WINDOW中不能执行的语句
楼主的意思,我大概知道了。
其实楼主的意思,基本上就是 哪些 命令,不是标准的 SQL 命令
是 SQL Plus 所特有的命令。
清单如下:
有楼主的 “SHO[W] [option]” 哦
Alphabetic List of SQL*Plus Commands
@{url | file_name[.ext]} [arg ...]
@@ { url | file_name[.ext] } [arg ...]
/ (slash)
ACC[EPT] variable [NUM[BER] | CHAR | DATE | BINARY_FLOAT | BINARY_DOUBLE] [FOR[MAT] format] [DEF[AULT] default] [PROMPT text | NOPR[OMPT]] [HIDE]
*A[PPEND] text
ARCHIVE LOG {LIST | STOP} | {START | NEXT | ALL | integer} [TO destination]
ATTRIBUTE [type_name.attribute_name [option...]]
BRE[AK] [ON report_element [action [action]]] ...
BTI[TLE] [printspec [text | variable] ...] | [ON | OFF]
*C[HANGE] sepchar old [sepchar [new [sepchar]]]
CL[EAR] option ...
COL[UMN] [{column | expr} [option ...]]
COMP[UTE] [function [LAB[EL] text] ... OF {expr | column | alias} ...ON {expr | column | alias | REPORT | ROW} ...]
CONN[ECT] [{logon | /} [AS {SYSOPER | SYSDBA}]]
COPY {FROM database | TO database | FROM database TO database} {APPEND | CREATE | INSERT | REPLACE} destination_table[(column, column, column, ...)] USING query
DEF[INE] [variable] | [variable = text]
*DEL [n | n m | n * | n LAST | * | * n | * LAST | LAST]
DESC[RIBE] {[schema.]object[@connect_identifier]}
DISC[ONNECT]
*ED[IT] [file_name[.ext]]
EXEC[UTE] statement
{EXIT | QUIT} [SUCCESS | FAILURE | WARNING | n | variable | :BindVariable] [COMMIT | ROLLBACK]
*GET [FILE] file_name[.ext] [LIST | NOLIST]
HELP | ? [topic]
*HO[ST] [command]
*I[NPUT] [text]
L[IST] [n | n m | n * | n LAST | * | * n | * LAST | LAST]
*PASSW[ORD] [username]
PAU[SE] [text]
PRI[NT] [variable ...]
PRO[MPT] [text]
{QUIT | EXIT} [SUCCESS | FAILURE | WARNING | n | variable | :BindVariable] [COMMIT | ROLLBACK]
RECOVER {general | managed | BEGIN BACKUP | END BACKUP}
REM[ARK]
REPF[OOTER] [PAGE] [printspec [text | variable] ...] | [ON | OFF]
REPH[EADER] [PAGE] [printspec [text | variable] ...] | [ON | OFF]
R[UN]
*SAV[E] [FILE] file_name[.ext] [CRE[ATE] | REP[LACE] | APP[END]]
SET system_variable value
SHO[W] [option]
SHUTDOWN [ABORT | IMMEDIATE | NORMAL | TRANSACTIONAL [LOCAL]]
*SPO[OL] [filename[.ext] [CRE[ATE] | REP[LACE] | APP[END]] | OFF | OUT]
STA[RT] { url | file_name[.ext] } [arg ...]
STARTUP options | upgrade_options
*STORE {SET} file_name[.ext] [CRE[ATE] | REP[LACE] | APP[END]]
TIMI[NG] [START text | SHOW | STOP]
TTI[TLE] [printspec [text | variable] ...] | [ON | OFF]
UNDEF[INE] variable ...
VAR[IABLE] [variable [type]]
WHENEVER OSERROR {EXIT [SUCCESS | FAILURE | n | variable | :BindVariable] [COMMIT | ROLLBACK] | CONTINUE[COMMIT | ROLLBACK | NONE]}
WHENEVER SQLERROR {EXIT [SUCCESS | FAILURE | WARNING | n | variable | :BindVariable] [COMMIT | ROLLBACK] | CONTINUE [COMMIT | ROLLBACK | NONE]}
XQUERY xquery_statement
*Commands not available in iSQL*Plus.
Ⅵ SQL2005 存储过程 碰到 with as 和DateDiff 的难题
减少代码量就只有拼接了,话说拼接会报错吗,为什么不能用?
或者你试一试DateDiff(d,getdate()+@day,addtime)
当用天算时@day为0,用月算时写30或者另写个方法计算当月的天数之类的
Ⅶ 落落老师高级oracle sql优化班 怎么样
您好,很高兴为您解答。
SQL优化简介
一般在应用中, 糟糕的SQL语句是造成系统性能低下的最主要原因,例如大小写的不统一、同样的SQL语句不同的写法等。而且,随着数据量的增加,情况会变得越来越严重。(题外话:优秀的Oracle数据库优化人才,是任何公司都稀缺的)
课程模块 详细章节内容
SQL高级优化
1 索引原理
2 基本概念
2.1 列基数与列选择性(区别列基数与执行计划的基数)
2.2 直方图
2.3 集群因子
3 统计信息
3.1 统计信息的最佳采样率
3.2 稳定系统收集统计信息最佳方法
3.3 如何查看统计信息是否过期
3.4 如何查看表的采样率
3.5 定制统计信息收集策略
3.6 快速检测SQL语句中统计信息过期的表的脚本
4. 执行计划
4.1 查看执行计划的方法
4.2 解释为什么不要用工具(TOAL/PLSQL DEV/EM)等查看执行计划
4.3 详细解释执行计划,教你彻底读懂执行计划
4.4 光标移动法则阅读执行计划
5. 访问路径(这部分会结合等待事件详细解释)
6. 连接方式
6.1 彻底搞懂嵌套循环,如何判断错误的嵌套循环
6.2 彻底搞懂哈希连接,如何优化哈希连接
6.3 彻底搞懂排序合并连接,什么情况下必须用排序合并连接
6.4 彻底搞懂笛卡尔连接,如何判断正确的笛卡尔连接,如何判断错误的笛卡尔连接
6.5 彻底搞懂外连接,掌握外连接的如何影响SQL性能
6.6 彻底搞懂半连接,掌握半连接优化方法以及底层原理
6.7 彻底搞懂反连接,掌握反连接优化方法以及底层原理
6.8 彻底搞懂标量子查询,掌握标量子查询优化方法以及底层原理
7. 成本计算
7.1 你优化SQL还在看COST吗?如果你还在看,说明你没入门
7.2 为什么COST很小,SQL却跑得很慢?
7.3 手把手教你计算全表扫描cost
7.4 手把手教你计算索引扫描cost
7.5 手把手教你嵌套循环cost
8. 查询转换
8.1 彻底搞懂 FILTER 底层原理,如何判断正确的FILTER,如何判断错误的FILTER
8.2 什么时候该用in/not in,什么时候该用exists/not exists?
我看到某某书,某某网站,说什么情况下用in,什么情况下用exists
抛弃这些错误的结论吧,我们来研究它的底层原理
8.4 彻底搞懂subquery unnesting,掌握subquery unnesting优化技巧
8.5 彻底搞懂vier merge,掌握view merge 优化技巧
8.6 彻底搞懂pushing predicate,掌握pushing predicate 优化技巧
9. 优化技巧
9.1 查看执行计划真实的基数
9.2 union代替or的情况
9.3 分页语句优化技巧
9.4 利用分析函数优化SQL
9.5 超大表与超小表HASH JOIN优化方法
9.6 <>优化技巧
9.7 函数索引优化技巧
9.8 LIKE '%XXX%' 优化技巧
9.9 如何根据执行计划建立索引?
9.10 组合索引怎么选择引导列?
10. SQL优化实战(讲课中也会出现一些案例)
10.1 收集统计信息,重建索引优化案例,如何发现统计信息过期?如何判断索引需要重建?
10.2 组合索引优化案例
10.3 利用并行优化案例
10.4 基数估算不准优化案例
10.5 直方图优化案例(嵌套循环优化案例)
10.6 with as优化经典案例
10.7 subquery unnesting 优化经典案例(多个)
10.8 view merge 优化经典案例
10.9 谓词推入优化经典案例
10.10 Merge优化update 案例
10.11 乱用bitmap优化案例
10.12 利用11g新特征扩展统计信息优化案例
10.13 利用分区优化SQL案例
10.14 利用local索引优化SQL案例
10.15 化整为零,各个击破优化案例
10.16 利用rowid优化案例
10.17 手工分配HASH AREA,SORT AREA 优化案例
10.18 标量子查询优化案例
10.19 利用ASH监控优化案例
10.20 分页优化案例
10.21 物化视图降低SQL性能案例
10.22 利用分析函数优化SQL案例
10.23 SQL优化高手之路---把你脑袋当成CBO
11.赠送一个经典表设计优化案例
如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】
希望我的回答对您有所帮助,望采纳!
~ O(∩_∩)O~
Ⅷ 怎么使用plsql查看执行计划
一.在线查看执行计划表
如果PLAN_TABLE表不存在,执行$ORACLE_HOME/rdbms/admin/utlxplan.sql创建plan_table表。
1.explain plan
for
select * from ......
2.select * from table(DBMS_XPLAN.Display);
二.使用oracle第三方工具:
plsql developer(F5)
Toad (Ctrl+E)
三.使用SQL*PLUS:
如果PLAN_TABLE表不存在,执行$ORACLE_HOME/rdbms/admin/utlxplan.sql创建plan_table表。
如果PLUSTRACE角色不存在,执行
$ORACLE_HOME/sqlplus/admin/plustrce.sql
1.sqlplus / as sysdba
set autotrace on;
关于Autotrace几个常用选项的说明:
SET AUTOTRACE OFF ---------------- 不生成AUTOTRACE 报告,这是缺省模式
SET AUTOTRACE ON EXPLAIN ------ AUTOTRACE只显示优化器执行路径报告
SET AUTOTRACE ON STATISTICS -- 只显示执行统计信息
SET AUTOTRACE ON ----------------- 包含执行计划和统计信息
SET AUTOTRACE TRACEONLY ------ 同set autotrace on,但是不显示查询
2.执行sql
四.sql trace
1.alter session set sql_trace=true;
2.执行sql
3.alter session set sql_trace=false;
4.查看相应的sql trace文件。
五.诊断事件(10046)
1.alter session set events '10046 trace name context forever,level 12';
2.执行sql
3.alter session set events '10046 trace name context off';
3.查看相应的sql trace文件。
可利用TKPROF工具查看跟踪文件
TKPROF是一个用于分析oracle跟踪文件并且产生一个更加清晰合理的输出结果的可执行工具。如果一个系统的执行效率比较低,一个比较好的方法是跟踪用户的会话并且使用TKPROF工具的排序功能格式化输出,从而找出有问题的SQL语句。
TKPROF命令后面的选项及输出文件各个列的含义在这里不做详细的介绍。google一下就会有很多资料。
下面简单描述一下TKPROF工具的使用步骤:
1、在session级别设置sql_trace=true
sys@ORCL>alter session set sql_trace=true;
Session altered.
如果要在pl/sql中对session级别设置true,可以使用dbms_system这个包:
sys@ORCL> exec dbms_system.set_sql_trace_in_session(sid,serial#,true);
2、指定一下生成的trace文件的名字,便于查找:
sys@ORCL>alter session set trace file_identifier='yourname';
3、执行SQL语句。
4、利用TKPROF工具格式化输出的trace 文件:
[oracle@q1test01~] $tkprof/oracle/admin/orcl/ump/orcl_ora_10266_yourname.trc/oracle/yourname.txtexplain=user/pwdaggregate=yessys=nowaits=yessort=fchela
5、查看生成的文件再设置sql_trace=false:
sys@ORCL>alter session set sql_trace=false;
Ⅸ PL/SQL with as 用法。
两个条件放一起写啊,select
count(1),count(case
when
topsap
>=2
then
1
else
null
end
)
from
tmp,或者你前面那个with
as重复写一遍加在第二句上
Ⅹ plsql中如何执行存储过程
实现的方法和详细的操作步骤如下:
1、第一步,双击plsql图标进入登录界面,输入用户名和密码,然后传输数据库实例名称,如下图所示,然后进入下一步。