免費諮詢一:這一家的諮詢速度特色就是快
免費諮詢二:有汽機車即可申貸,24小時內可撥款
一對一的快速立即免費諮詢、配對,十分鐘就能知道您適合的銀行申貸方案是什麼。
立即免費諮詢
免費諮詢三:這家貸款公司評價非常高
免費諮詢四:這一家的諮詢方案很多元,很推薦
免費諮詢五:一群對於專精貸款的專業人士提供相關諮詢
免費諮詢六:這家貸款公司可以承辦軍公教人士
軍公教朋友可以到這間貸款快速找到適合的貸款方案
立即免費諮詢
個人貸款 | 貸款 | 信用貸款 | 債務整合 | 負債整合 | 債務協商 | 個人信貸 | 小額借款 | 信貸 | 信貸利率 |
信貸代辦 | 創業貸款 | 銀行貸款 | 貸款投資 | 買車貸款 | 車貸 | 汽車貸款 | 債務協商 | 卡債處理 | 二胎房貸 |
信用不良信貸貸的下來嗎 該怎辦 | 信用貸款哪裡申請最快核貸 | 信用不良要如何申請信用貸款
個人信貸免費諮詢的網站 | 個人信貸條件,銀行個人信貸比較諮詢 | 小額信貸利率比較標準迷思
三面向分析最低信貸利率條件的迷惑陷阱 | 哪家銀行信貸利息最低 | 銀行個人信貸免費諮詢 | 小額信貸推薦幾家 | 個人信貸利率比較銀行條件如何談 |
RF4165456EDFECE15158DCE |
本文轉載自dbaplus社群 作者介紹 一、SQLT背景介紹 SQLTXPLAIN(簡稱SQLT)是ORACLE COE提供的一款SQL性能診斷工具,SQLT主要方法是通過輸入的一個SQL語句,從而生成一組診斷文件,這些文件用於診斷性能較差的或產生錯誤結果(WRONG RESULTS)的SQL。 SQLT產生的診斷文件內容包括執行計劃、統計信息、CBO的參數、10053文件、性能變化的歷史等需要診斷SQL性能的一系列文件,而且SQLT還提供一系列工具,比如快速綁定SQL執行計劃的工具。 SQLT主要使用場合是在需要快速綁定SQL執行計劃,或者一些和參數、BUG等相關的疑難SQL分析中。 二、SQLT家族簡介 SQLT主要包含下列方法: ... SQLT為一個SQL語句提供了下面 7種主要方法來生成診斷詳細信息XTRACT,XECUTE,XTRXEC,XTRSBY,XPLAIN,XPREXT和XPREXC。XTRACT,XECUTE,XTRXEC,XTRSBY,XPREXT和XPREXC處理綁定變量和會做 bind peeking(綁定變量窺視),但是XPLAIN不會。這是因為XPLAIN是基於EXPLAIN PLAN FOR 命令執行的,該命令不做 bind peeking。 因此,如果可能請避免使用XPLAIN,除了XPLAIN的bind peeking限制外,所有這 7種主要方法都可以提供足夠的診斷詳細信息,對性能較差或產生錯誤結果集的SQL進行初步評估。如果該SQL仍位於內存中或者Automatic Workload Repository (AWR) 中,請使用XTRACT或XTRXEC,其他情況請使用XECUTE。對於Data Guard或備用只讀資料庫,請使用XTRSBY。僅當其他方法都不可行時,再考慮使用XPLAIN。XPREXT和XPREXC是類似於XTRACT和XECUTE,但為了提高SQLT的性能它們禁了一些SQLT的特性。 幾種主要方法的關係如下: 其中XTRXEC包括了XTRACT和XECUTE方法,實際上它會同時執行這兩個方法生成對應的文件。使用這些方法後,會生成文件,自動打包。 ... SQLT的詳細內容請參考MOS文檔:SQLT 使用指南 (Doc ID 1677588.1),本文重點說下SQLT里比較有用的方法(本文內容的環境是11.2.0.3)。 三、SQLT寶劍出鞘 1、SQLT生成診斷文件 生成診斷文件使用的是sqlt/run目錄下的文件,此目錄下還有SQLHC健康檢查的腳本。這裡看一個例子: SQL text: select * from test1 where test1.status in (select test2.status from test2 where object_name like 'PRC_TEST%'); 這是條簡單的子查詢SQL,其中test1的status有索引,而且status有傾斜分布如下: dingjun123@ORADB> select status,count(*) 2 from test1 3 group by status; STATUS COUNT(*) ------- INVALID 6 VALID 76679 --子查詢結果是INVALID dingjun123@ORADB> select test2.status from test2 2 where object_name like 'PRC_TEST%' 3 ; STATUS ------- INVALID INVALID 子查詢中的語句返回的正好是INVALID,那麼可以預測,此語句應該是用子查詢結果驅動表test1,走test.status列的索引,正常的應該是走nested loops。OK,那麼我們看看執行計劃: ... 執行計劃令人費解,要知道,對於表的統計信息是最新的且採樣比例100%,而且也收集了STATUS列的直方圖,為什麼還走HASH JOIN,而且TEST1還走全表呢?先用SQLT診斷下,到sqlt/run目錄下找到對應的腳本,然後輸入SQLID,之後會將生成的文件打包。 dingjun123@ORADB> @sqltxtrxec PL/SQL procedure successfully completed. Elapsed: 00:00:00.00 Parameter 1: SQL_ID or HASH_VALUE of the SQL to be extracted (required) Paremeter 2: SQLTXPLAIN password (required) Enter value for 2: XXXXXX PL/SQL procedure successfully completed. Elapsed: 00:00:00.00 Value passed to sqltxtrxec: SQL_ID_OR_HASH_VALUE: "aak402j1r6zy3" 解壓文件,即可看到如下內容: ... 這裡我們主要看main文件,這是主要內容以及10053等。 首先打開main文件,可以看到主要診斷內容: ... 可以看到,包括CBO的環境,執行計劃以及歷史執行信息,表,索引等對象統計信息都在這個main文件中,大部分時候可以通過此文件,了解SQL效率不佳的原因,比如執行計劃變壞的時間段內正好收集了統計信息,那麼可以快速定位可能是統計信息收集不正確導致的。 一般情況下,都是先看執行計劃,通過Plans目錄找到Execution Plans,可以點那些+,會顯示對應的統計信息等內容: ... 在統計信息正確的情況下,CBO估算的返回結果行是76685行,而實際結果是6行,估算是實際的12781倍,這顯然是有問題的。可以點開對應的+,看看統計信息: ... TEST1的STATUS列收集了直方圖,而且是100%採樣,沒有任何問題。到此,這個簡單的SQL很可能的情況就是: CBO的缺陷,無法準確估算對應的結果集的cardinality; CBO的BUG或參數設置原因。 針對以上兩種情況,後面會介紹解決方法,這裡先說下,為什麼這裡走了HASH JOIN,TEST1走了FULL TABLE SCAN,結果集的cardinality估算的結果正好是TEST1的行數呢,原因在於: TEST1的STATUS有直方圖; 子查詢結果查詢出STATUS,但是查詢結果的STATUS值在沒有執行之前是未知的,也就是可能是INVALID也可能是VALID。 綜合以上因素,CBO無法在運行期之前預知結果的具體值,從而導致優化器缺陷,走了不佳的執行計劃(12C的apative plan可以解決這個問題)。 既然知道是這個原因,那麼,就採用SQL PROFILE綁定就可以了,詳細內容見下節。 2、SQLT快速綁定執行計劃 SQL PROFILE可以使用SQLT工具快速綁定,SQL PROFILE就是對SQL增加了一系列HINTS,好處是不需要改寫SQL,可以在資料庫里直接管理。 對於COE工具SQL PROFILE綁定有兩類: 直接綁定:針對執行計劃經常突變的,歷史中有好的執行計劃,當前走的執行計劃差,直接綁定即可。 替換綁定:針對執行計劃一直較差,沒有好的執行計劃作為參考,可通過添加hints讓其走好的執行計劃,然後通過coe工具手動修改文件或coe_load_sql_profile或者編寫存儲過程綁定到好的執行計劃上。 注意:如果SQL沒有綁定變量,則通過coe_xfr_sql_profile生成的文件需要修改force_match=>true,手動編寫存儲過程或者coe_load_sql_profile做替換綁定的也需要修改force_match=>true,以讓所有SQL結構相同(字面量條件不同)的SQL都綁定上好的執行計劃。 1)使用coe_xfr_sql_profile腳本直接綁定 針對SQL執行計劃經常突變,當計劃變差時候,快速綁定到效率高的執行計劃中。如下例:運行code_xfr_sql_profile然後輸入sql_id: SQL> @coe_xfr_sql_profile.sql PLAN_HASH_VALUE AVG_ET_SECS 3071332600 .006 --效率高的計劃 40103161 653 Parameter 2: 次數輸入需要綁定的PLAN_HASH_VALUE,顯然我們輸入3071332600 PLAN_HASH_VALUE (required) Enter value for 2: 最後生成文件,執行。 注意:如果SQL沒有使用綁定變量,需要將生成文件的force_match => FALSE中的FALSE改成TRUE。 2)使用coe_load_sql_profile做替換綁定 3.1中的例子是由於CBO的缺陷導致無法判定子查詢結果,從而導致走錯了執行計劃,這裡在12c之前需要綁定執行計劃,因為沒有現成的執行計劃,所以需要自己寫hints構造一條正確執行計劃的SQL,然後通過SQLT的替換綁定,將正確執行計劃綁定到原SQL中去。 先將原始SQL通過增加hints,讓其執行計劃正確,改造後的SQL如下: select/*+ BEGIN_OUTLINE_DATA USE_NL(@"SEL$5DA710D3" "TEST1"@"SEL$1") LEADING(@"SEL$5DA710D3" "TEST2"@"SEL$2" "TEST1"@"SEL$1") INDEX_RS_ASC(@"SEL$5DA710D3" "TEST2"@"SEL$2" ("TEST2"."OBJECT_NAME")) INDEX_RS_ASC(@"SEL$5DA710D3" "TEST1"@"SEL$1" ("TEST1"."STATUS")) OUTLINE(@"SEL$2") OUTLINE(@"SEL$1") UNNEST(@"SEL$2") OUTLINE_LEAF(@"SEL$5DA710D3") ALL_ROWS DB_VERSION('11.2.0.3') OPTIMIZER_FEATURES_ENABLE('11.2.0.3') IGNORE_OPTIM_EMBEDDED_HINTS END_OUTLINE_DATA */ * from test1 where test1.status in (select test2.status from test2 where object_name like 'PRC_TEST%'); 然後使用coe_load_sql_profile腳本做替換綁定,輸入原始的sql_id和替換的sql_id: Enter value for 2: 6rbnw92d7djwk PLAN_HASH_VALUE AVG_ET_SECS 313848035 .001 Parameter 3: PLAN_HASH_VALUE (required) Values passed to coe_load_sql_profile: ORIGINAL_SQL_ID: "aak402j1r6zy3" MODIFIED_SQL_ID: "6rbnw92d7djwk" PLAN_HASH_VALUE: "313848035" … 再次執行原始語句,可以看到,綁定執行計劃成功,已經走了索引和NESTED LOOPS。 ... SQLT的快速綁定執行計劃,在處理突發SQL性能問題中使用廣泛,的確是一個非常好的工具,猶如寶劍出鞘,削鐵如泥。 3、XPLORE快速診斷參數設置問題 某天晚上某系統一重要語句,遷移到新庫後執行1小時都沒有結果,原先很快(1s左右),業務人員焦急萬分。對應的語句如下: SELECT * FROM (SELECT A.ID, A.TEL_ID, A.PRE_CATE_ID, A.INSERT_TIME, A.REMARK1 FROM TAB_BN_TEST_LOG A, (SELECT TEL_ID, MIN(INSERT_TIME) AS INSERT_TIME FROM TAB_BN_TEST_LOG WHERE INSERT_TIME > '08-APR-19' AND ID NOT IN (SELECT IMEI FROM TX_MM_LOG_201907 WHERE TID = '10') GROUP BY TEL_ID) B WHERE A.TEL_ID = B.TEL_ID AND A.INSERT_TIME = B.INSERT_TIME AND A.ID NOT IN (SELECT IMEI FROM TX_MM_LOG_201907 WHERE TID = '10') ORDER BY INSERT_TIME) WHERE ROWNUM < 200 查看執行計劃: ... 執行計劃中出現FILTER,也就是子查詢無法unnest,由於使用的是NOT IN,但是回頭一想,這是11g,有null aware特性,應該不會出現FILTER才對,而且使用hints也無效。那麼首先想到的就是檢查null aware參數是否設置,經過檢查: 完全沒有問題,那麼在收集統計信息、SQL PROFILE、可以想到的參數設置都沒有問題情況下,如何解決呢? 由於查詢轉換受眾多參數設置影響,雖然null aware已經開啟,但是可能受其它參數或fix control設置影響,因此,這裡可以使用SQLT的神器XPLORE分析,它會將已知參數、已知bug對應的fix control逐一重新設置一遍,然後生成對應的執行計劃,最後生成一個html文件,通過查看執行計劃,找到對應的參數或者BUG。 SQLT XPLORE中有XEXCUTE、XPLAIN等眾多方法,對於慢的語句,建議使用XPLAIN方法。然後查看分析結果與目標計劃匹配的設置,從而找出問題。 使用XPLORE,可以參考sqlt/utl/xplore中的readme.txt。這裡需要將對應的SQL內容里加上:/* ^^unique_id */。 最終,生成的XPLORE文件內容如下: ... 有8個執行計劃的PLAN_HASH_VALUE,對應的點進去,找到正確的執行計劃對應的參數設置: ... 最終找到,原來和_optimizer_squ_bottomup參數有關,這個參數,系統設置成FALSE,導致此子查詢無法進行null aware查詢轉換,重新設置後語句執行恢復到正常時間。 針對這樣的情況,如果一個個參數去對比分析,必然耗時很長,使用SQLT的XPLORE神器,可以快速找到對應的參數設置或已知BUG問題,比如一些新特性導致的SQL性能問題、SQL產生錯誤的結果等,都可以通過XPLORE分析,快速找到對應的參數,然後重新設置。 最後做個總結:SQLT里還有很多其他的功能,可以通過MOS查看對應的文章,SQLT在解決棘手的SQL性能問題時,的確是一把利器,猶如寶劍出鞘,SQL性能問題無所遁形。 從過去40年至今,資料庫的形態基本經歷了傳統商業資料庫、開源資料庫到雲原生資料庫的演進過程。雲時代下資料庫將如何革新與創變?金融行業核心資料庫遷移與建設如何安全平穩展開?來Gdevops全球敏捷運維峰會北京站尋找答案: 《All in Cloud 時代,下一代雲原生資料庫技術與趨勢》阿里巴巴集團副總裁/達摩院首席資料庫科學家 李飛飛(飛刀) 《AI和雲原生時代的資料庫進化之路》騰訊資料庫產品中心總經理 林曉斌(丁奇) 《ICBC的MySQL探索之路》工商銀行軟體開發中心 魏亞東 《金融行業MySQL高可用實踐》愛可生技術總監 明溪源 《民生銀行在SQL審核方面的探索和實踐》民生銀行 資深資料庫專家 李寧寧 《OceanBase分布式資料庫在西安銀行的落地和實踐》螞蟻金服P9資深專家/OceanBase核心負責人 蔣志勇
內容簡介
「上班族必看書」
轉變態度、換個想法,站穩競爭浪潮!
1.做一條蠕動的蛇:能贏的實踐法則
一條蠕動的蛇,帶領你走向成功的最佳捷徑。光憑好習慣,就能定輸贏。
日本有句俗諺說:「蠕動的蛇,才會讓人害怕」。一條蛇即使天生帶著劇毒,如果只是靜止不動,就和一根稻草沒兩樣。即使你有一套完備的成功計畫,如果不能適應環境伺機而起,就不可能成功。
「韓國心靈勵志暢銷作家」韓昌旭,曾擔任週刊記者,訪問過許多企業名人成功之道。透過豐富實例,韓昌旭解說能贏的實踐法則:
齒白成功學──牙齒白淨,可以讓人感到安定感;
舉止魅力學──一個人的行為舉止,可以讓人提早成功;
活水哲學──安於現狀的人,只有面臨被社會淘汰的命運。
在現今瞬息萬千的時代中,只要用對方法,懂得複製成功者的觀念與習慣,即使環境再惡劣,你依然可以百戰不殆,無往不利!
2.只要用1/2的腦袋就夠了──EMBA沒有教的工作智慧
無關學經歷,也無關景氣,只要是職場上班族,多半都會有「這個工作適不適合我自己」、「下一個工作是否會更好」、「公司的理念與我有差異」等疑惑。究其原因,這是缺乏所謂的「工作智慧」。
德國首席行銷及辯術訓練專家洛爾夫.魯雷德,從數十年講座課程中,精挑細選出五百多句激勵人生的幽默語錄,輕鬆帶領讀者「解剖腦袋」,尋找工作智慧——取得自己的生涯輪廓,活出自己獨特的職場人生。
作者長年的輔導經驗顯示,能夠利用「半型腦袋」的人,生活不但比較快樂,也較有可能成功。至於半型腦袋怎麼來的?簡單來說,就是善於利用別人的經驗法則,唯有提昇腦袋,將使你啟動關鍵的競爭優勢,無往而不勝。
本書綜合全球成功者與知名人士的經驗與言論,並透過德國知名插畫家幽默的線條筆觸,不僅能讓你會心一笑,也能為你創造一種競爭者無法複製的成功。
詳細資料
- 規格:平裝 / 普通級 / 單色印刷 / 初版
- 出版地:台灣
- 本書分類:> >
文章來源取自於:
壹讀 https://read01.com/d03456B.html
博客來 https://www.books.com.tw/exep/assp.php/888words/products/0010458663
如有侵權,請來信告知,我們會立刻下架。
DMCA:dmca(at)kubonews.com
聯絡我們:contact(at)kubonews.com
民間二胎台北信貸條件評分新竹聯徵是什麼有財力證明
信貸條件無信用卡 新竹信用瑕疵房貸 個人信貸、車貸、二胎額度不如預期?為何推薦個人信貸、車貸、二胎?信貸增貸 雲林債務整合是什麼 房屋融資貸款是什麼呢?7分鐘搞懂優缺點銀行借錢結婚 高雄申請條件 用車貸買車一定比信貸划算?買車貸款常見的3項陷阱代書信貸 快速借款方式 整合負債信用卡/卡債整合,3大好處降低月付金!
留言列表