PL/SQL登錄到數據庫,使用tools工具進行導入。使用plsql登錄到需要導入數據的數據庫。點擊工具欄上【tools】--【Import tables】
專注于為中小企業(yè)提供成都網站設計、成都做網站服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)樂昌免費做網站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯網行業(yè)人才,有力地推動了1000多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網站建設實現規(guī)模擴充和轉變。
請點擊輸入圖片描述
點擊工具【SQL Inserts】(第二個選項),點擊選擇需要導入的數據庫腳本。
請點擊輸入圖片描述
選擇sql腳本的,點擊打開,即可打開數據庫腳本文件,數據庫腳本就可以預加載到plsq工具中。
請點擊輸入圖片描述
開始導入數據庫數據。選擇完sql腳本之后,點擊【Import】按鈕開始將腳本中的數據導入到數據庫中,這個操作執(zhí)行一次即可,如果數據量比較大,會出現卡頓。
請點擊輸入圖片描述
執(zhí)行完之后,沒有任何報錯說明插入成功。【注意:一定記得點擊commit進行提交數據,否則數據不會提交到數據庫進行存儲】
請點擊輸入圖片描述
查詢驗證插入的數據。插入完之后,可以編寫sql語句對插入的數據進行核對。執(zhí)行查詢sql看到剛才插入的數據。
請點擊輸入圖片描述
Oracle可以使用SQL Plus進行執(zhí)行,但是可視化不夠,建議使用另外一個查詢輔助工具PLSQL Developer,使用PLSQL Developer工具里面各種可視化都很好看出查詢出數據的結果以及可以用這個工具分析SQL的執(zhí)行分析。
Sql性能非常差的時候,oracle提供了SQL_TRACE來跟蹤sql的執(zhí)行情況。
注:分析sql的方式比較多,還有根據優(yōu)化器、sql執(zhí)行計劃來分析。
SQL_TRACE能夠將sql執(zhí)行的過程輸出到一個trace文件里面。
首先設置自己定義的trace文件的標識方便查找。
alter session set tracefile_identifier='mytest';
然后對當前會話啟動SQL_TRACE,最好不要一直打開該開關,代價比較大。
alter session set sql_trace=true;
然后我們執(zhí)行一條sql語句。
最后關閉該開關的狀態(tài)。
alter session set sql_trace=false;
我們可以從目錄%ORACLE_BASE%/diag/rdbms/orcl/orcl/trace(11g版本的路徑,如果是10g的應該不一樣)中
找到自己定義的trace文件。
原始的trace文件的可讀性不高,我們一般使用oracle自帶的工具,tkprof來處理這個trace文件。我們可以查看tkprof的幫助。
tkprof orcl_ora_3820_mytest.trc out.txt
我們來看剛才生成的trace文件,頭部信息描述了tkprof 的版本以及報告中一些列的含義,對于任何一條sql語句,都應該包含Parse—sql分析階段,Execute—sql執(zhí)行階段,Fetch—數據提取階段,橫向的列如圖所示,包含消耗cpu時間0.00秒,操作總耗時0.04秒,物理讀取了0個數據塊,沒有發(fā)生current方式的讀取(一般在update會發(fā)生),一共提取記錄1條。
Misses in library cache during parse: 0表示這是一次軟分析(關于硬分析和軟分析下面會接著談到)
Optimizer mode: ALL_ROWS表示oracle的優(yōu)化器模式為ALL_ROWS。這也就是前面提到的另外的分析方式優(yōu)化器。
下面是sql執(zhí)行的具體計劃,可以看到執(zhí)行計劃選擇的是全表掃描。
經過處理以后的trace文件的確比較容易看明白,它有助于我們分析sql的性能問題。
下面我通過一個trace實例來解釋一下,為什么OLTP系統(tǒng)中需要變量綁定機制。
當用戶和數據庫建立連接,并發(fā)送一條sql語句以后,oracle會對該sql進行hash函數運算(hash算法提供了一種快速存取數據的方法,它用一種算法建立鍵值與真實值之間的對應關系,每一個真實值只能有一個鍵值,但是一個鍵值可以對應多個真實值,以方便存取),得到一個hash值,然后到共享池中尋找是否有匹配的hash值的sql存在,如果有,就直接使用該sql的執(zhí)行計劃去執(zhí)行sql。如果沒有,oracle就會認為這是一條新的sql語句,然后按照語法分析,語義分析,生成執(zhí)行計劃,執(zhí)行sql這些步驟來執(zhí)行最終把結果返回給用戶。這些步驟也被成為硬分析,可以想象,如果減少硬分析,能夠大大降低數據庫花費在sql解析上的資源開銷。
我們先執(zhí)行一條sql 1000次,比較綁定變量和不綁定變量的差異。得到結果以后,要計算實際的消耗,我們需要把OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS以及OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS的時間累計起來,前者表示數據字典表的相關的信息,包含權限控制等,后者表示sql所衍生出的遞歸sql語句的信息??梢钥吹浇壎ㄗ兞康?,整條語句執(zhí)行時間為0.22+0.02=0.24秒,CPU時間0.18+0.03=0.21秒,分析次數3次,執(zhí)行次數1003次。而不綁定變量的時候,整條語句執(zhí)行時間為0.28+1.29=1.57秒,CPU時間0.31+1.26=1.57秒,分析次數1002次,執(zhí)行次數1003次??梢娊壎ㄗ兞康拇_能夠帶來更低的開銷。(如何設計數據庫中使用綁定變量也是和系統(tǒng)息息相關的,很多數據庫問題都是在設計以后就已經存在的)
應用級調優(yōu)分析:
就通常所說的三層架構來說,中間件這一層能夠起到一個緩沖池的作用,如果并發(fā)用戶數到3000這個數量級的時候,中間件能夠控制不是所有的用戶都能直接連接到數據庫,當然這里的程序會快速響應用戶請求,保證緩沖池的隊列等待不會很久。
對應用這一級別的調優(yōu),主要集中在app程序,中間件的監(jiān)控,集群配置等方面。如果是發(fā)現應用級別的問題,首先要分析是配置問題,還是程序本身的問題。如果并發(fā)用戶數很大,中間件的線程池最大值配置過小,會導致在請求隊列堆積,表現就是線程監(jiān)控視圖中,請求的隊列堆積比較多,一般可以調整線程池最大值來解決。我們來看看weblogic的監(jiān)控視圖。
考慮到如果為每一個請求都創(chuàng)建一個新線程來處理的話,那么我們難以在系統(tǒng)中實現足夠數量的線程。不受限制的創(chuàng)建線程可能耗盡系統(tǒng)資源,因此引入了線程池。線程池的思想是在進程開始時創(chuàng)建一定數量的線程并將它們置入一個池(pool)中,線程在這個池中等待工作。當服務器接收到一個請求時,它就從池中喚醒一個線程(如果有可用的線程),由它來處理請求。一旦線程服務完畢,它就返回線程池等待后面的工作。
線程池利用已存在的線程服務請求要比等待創(chuàng)建一個線程要快,并且線程池限制了線程的數量。
如果懷疑是程序的問題,我們一般可以通過java自帶的工具來幫助分析,工具很多。這里我主要提到一個jdk1.6以后附帶的jvisualvm。
我們打開jdk1.6,找到并運行jvisualvm.exe。
我們發(fā)現應用程序分為本地,遠程兩部分。本地包含本地運行的java進程,遠程能夠通過配置連接到遠程服務器上的java進程。我們先啟動一個tomcat??梢钥吹奖镜貞贸绦蛞呀洿蜷_了一個帶有tomcat以及進程標識id的菜單。雙擊打開。這里我們一般關心2個視圖。監(jiān)視、線程。
其中監(jiān)視視圖比較關心垃圾回收活動(顧名思義,回收那些在程序里面不再使用到的內存空間),堆內存變化。如果在壓力測試過程中,堆內存變化是一個逐漸上漲的趨勢,并且經過多次手動gc回收,還是保持這個趨勢,說明內存泄漏的可能性很大。如果猜測有內存泄漏,可以通過分析java的heap dump。JVM (java虛擬機)記錄下問題發(fā)生時系統(tǒng)的運行狀態(tài)并將其存儲在轉儲(dump)文件中。Heap dump就是這樣一種文件形式。
線程視圖比較關心線程的當前執(zhí)行狀態(tài),這里可以生成另一種轉儲文件 Java dump。Java dump,也叫做 Thread dump,是 JVM 故障診斷中最重要的轉儲文件之一。JVM 的許多問題都可以使用這個文件進行診斷,其中比較典型的包括線程阻塞,CPU 使用率過高,JVM Crash,堆內存不足,和類裝載等問題。其中線程阻塞更加常見。
1、安裝并打開toad可視化工具。
2、輸入服務器名或服務器Ip地址、數據庫用戶名及密碼,成功連接到數據庫。
3、進入軟件界面。
4、如果你看到的界面不同,首先點擊“Editor”——“SQL”按鈕,即可打開 sql語句編輯窗口。
5、然后在Current Schema編輯窗口中,輸入sql語句,測試語句最好不要使用改變數據庫結構和數據的語句。
6、然后按F5或點擊如圖按鈕運行SQl語句。底部“grid1”中可以看到運行結果。
使用sql語句,查詢oracle的表注釋等信息方法如下:
一、Oracle 下讀取表/字段的備注信息,Oracle 通過COMMENT ON TABLE? /? COMMENT ON COLUMN 追加表/字段的備注。
COMMENT ON TABLE ,MR_DEPT,IS 。
COMMENT ON COLUMN ,MR_DEPTDEPT_ID,IS。
COMMENT ON COLUMN ,MR_DEPT"PARENT_ID,IS。
COMMENT ON COLUMN ,MR_DEPT"DEPT_NAME,IS 。
COMMENT ON COLUMN ,MR_DEPT"STATUS,IS 。
二、查詢表的備注信息
SELECT。
TABLE_NAME。
TABLE_TYPE。
COMMENTS。
FROM。
USER_TAB_COMMENTS。
WHERE-TABLE_NAME -MR_DEPT。
三、查詢字段的備注信息
TABLE_NAME。
COLUMN_NAME。
COMMENTS
FROM。
USER_COL_COMMENTS。
WHERE-TABLE_NAME - 'MR_DEPT。
方法如下:
1:運行cmd進入命令行界面
2:進入到存放批量sql的文件夾下面
3:輸入命令
sqlplus
數據庫名/密碼@數據庫
按回車鍵
4:輸入spool
指定路徑:\a.log
按回車鍵
(此步驟的主要作用就是追蹤批量執(zhí)行sql的日志,路徑隨便寫,只要能找到就行,a.log可以隨便起名,但是必須要.log后綴)
5:@start.sql
按回車鍵(在批量sql文件夾下寫一個文件,名字叫start.sql,其中在這個文件里面寫批量sql的文件名)
具體格式如下:@@sql的文件名.sql;
@@sql的文件名2.sql;
6:spool
off
(此時a.log中所有日志已經寫入完畢)
7:exit
退出sqlplus
當然只有一個sql文件,但是里面有多個insert語句,數據量非常大,此時也可以在命令狀態(tài)下執(zhí)行,前4步是一樣的,第五步就是@文件名.sql;
名稱欄目:oracle怎么用sql,oracle怎么用命令創(chuàng)建數據庫
網頁地址:http://jinyejixie.com/article34/dsdgpse.html
成都網站建設公司_創(chuàng)新互聯,為您提供標簽優(yōu)化、企業(yè)網站制作、網站策劃、網站營銷、響應式網站、面包屑導航
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯