Ⅰ 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圖標進入登錄界面,輸入用戶名和密碼,然後傳輸資料庫實例名稱,如下圖所示,然後進入下一步。