自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

OracleSQL調(diào)優(yōu)的作用是什么?

數(shù)據(jù)庫 Oracle
我們今天主要介紹的是Oracle數(shù)據(jù)庫進(jìn)行相關(guān)的企業(yè)開我們所要用到的2個相關(guān)項目的描述,以下就是正文的主要內(nèi)容的描述。

以下的文章主要是講述在使用Oracle數(shù)據(jù)庫進(jìn)行相關(guān)的企業(yè)開我們所要用到的相關(guān)的項目,其中包括OracleSQL調(diào)優(yōu),還有相關(guān)的多數(shù)據(jù)庫協(xié)作的相關(guān)內(nèi)容的描述,以下就是相關(guān)內(nèi)容的具體介紹。

OracleSQL調(diào)優(yōu)

數(shù)據(jù)庫優(yōu)化主要是DBA的工作,而且調(diào)優(yōu)分成很多步驟,根據(jù)經(jīng)驗來看,首先需要調(diào)整的就是程序員寫的SQL語句,一句不良的SQL,能致使整個Oracle宕機(jī),這并不是夸張的說法,當(dāng)然也不要根據(jù)這個來說明Oracle多么脆弱,首先應(yīng)該看的是OracleSQL如何優(yōu)化。

 

其實在開發(fā)環(huán)境或測試環(huán)境下,有時很難發(fā)現(xiàn)真正的性能問題,因為開發(fā)環(huán)境的數(shù)據(jù)量可能比生產(chǎn)環(huán)境的實際數(shù)據(jù)量要小很多,即便出現(xiàn)很多的FTS,效率也是可以接受的,這種工作方式,就給調(diào)優(yōu)帶來了一定的難度,所以一般都是上線后,由生產(chǎn)系統(tǒng)反饋出了問題,然后程序員再想辦法模擬生產(chǎn)環(huán)境,從而使問題重現(xiàn),進(jìn)而將之解決。

 

對于比較好的測試方案中一般包括壓力測試,其中也包括大數(shù)據(jù)量測試,可以自己模擬一些大的數(shù)據(jù)量,然后進(jìn)行測試,這是比較好的方式。對于調(diào)優(yōu)的方式,首先是使用SQL的執(zhí)行計劃來查看是否使用了正確的索引,如上已經(jīng)討論過,如果確認(rèn)索引有問題。

請新建索引從而解決問題,如果已經(jīng)建立了索引,但是發(fā)現(xiàn)索引沒有用上,那么可能是表分析不到位,需要重新進(jìn)行表分析,可以申請DBA進(jìn)行協(xié)助。如果以上兩者都做了,還是不能正確利用索引,那么就需要使用hint功能,強制使用索引,此功能比較復(fù)雜,不再多說,在實際工作中,可向DBA咨詢。

 

有時SQL是存在于整個系統(tǒng)中的,很難單獨提取出來,這時有幾個辦法:

 

1.在程序中加斷點,當(dāng)程序運行到SQL處,先把OracleSQL取出來,自己去分析

 

2.在程序中加輸出,把SQL直接輸出到外部文件,然后再慢慢分析

 

3.向DBA申請,打開Oracle的Trace功能,記錄所有的SQL語句。不過這種方式會使整個系統(tǒng)的效率降低不少,使用之后,一定記得把參數(shù)調(diào)整回去。程序員所能涉及到的就是SQL調(diào)優(yōu),其它更深入的系統(tǒng)調(diào)優(yōu),可以不做過多的考慮。

多數(shù)據(jù)庫協(xié)作

 

這里所說的數(shù)據(jù)庫,實際上指的是Oracle中常說的“實例”,這些實例可以位于同一臺機(jī)器上,也可以位于不同的機(jī)器上。有時“多數(shù)據(jù)庫”還可以指在同一個實例中不同的用戶中,如果所有的內(nèi)容均在一個實例中進(jìn)行,只是分屬于不同的用戶,這種處理方式最簡單,只需要在引用的表名前加上其它用戶的名字即可,比如 user1想使用user2中的表,可以寫成:

  1. select * from user2.table_name 

 

如果覺得在應(yīng)用程序中每次都要帶著其它的用戶名不方便或有其它原因,可以有兩種方式來替換:

 

1.視圖

 

 

  1. Create or replace view table_name as select * from user2.table_name; 

 

這種方式,直接在user1中引用視圖,就可以實現(xiàn)對user2中表的引用

 

2.同義詞

 

 

  1. Create synonym table_name for user2.table_name;  

 

這種方式相對于視圖來說更加專業(yè),一般都是按這種方式來處理,在user1中使用table_name的時候,自動根據(jù)同義詞定義轉(zhuǎn)到相應(yīng)的位置。

 

與視圖的另一個區(qū)別是,同義詞可以對任何的object進(jìn)行映射,而不僅局限于表,比如package等。所以應(yīng)該多用這種方式來替代視圖的方式。

 

如果多數(shù)據(jù)庫不在同一個實例中,則需要使用DBLINK進(jìn)行連接,可以參考create database link的寫法,在一般的應(yīng)用中,很少用到這種方式。

以上的使用有一個默認(rèn)前提就是user2允許user1來使用它的資源,如果沒有權(quán)限,user1是不能操作user2的表的,這時就涉及到一個賦權(quán)的操作,賦權(quán)必須由user2親自來處理,其它具有DBA角色的用戶也不可以代勞。

 

賦權(quán)使用如下語句:

  1. grant select on table_name to user1;  

 

有一點需要特別注意,如果user1具有DBA角色,在沒有顯示賦權(quán)的情況下,他也可以直接使用user2中的表,但是如果在user1中寫存儲過程,在函數(shù)中引用user2中的表,必須顯示的賦權(quán),這點是非常容易引起混淆的地方,需要提醒特別注意。

 

 

【編輯推薦】

  1. Oracle遠(yuǎn)程復(fù)制和異地容災(zāi)的3種解決方案介紹
  2. Oracle數(shù)據(jù)庫保持其優(yōu)良性的手段有哪些
  3. 九大Oracle性能優(yōu)化基本方法詳解
  4. Oracle數(shù)據(jù)庫的四種實用性很強的啟動方式
  5. Oracle 11g中最具有獨特點的5大特點

 

責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2009-07-07 16:38:36

ServletCont

2022-02-18 11:06:12

首席技術(shù)官技術(shù)人工智能

2010-06-30 15:24:49

SQL Server子

2010-04-22 16:39:21

Oracle 調(diào)優(yōu)

2022-11-23 11:15:22

2022-11-23 16:23:12

2024-03-12 15:33:40

2020-03-11 08:15:08

物聯(lián)網(wǎng)智慧城市互聯(lián)網(wǎng)

2010-07-13 14:31:09

SQL Server

2022-04-08 13:58:19

物聯(lián)網(wǎng)車隊管理企業(yè)

2022-09-27 09:52:14

物聯(lián)網(wǎng)邊緣計算

2021-04-19 21:58:32

智能照明商業(yè)建筑

2019-12-02 08:18:51

CISO首席信息安全官網(wǎng)絡(luò)安全

2020-02-25 10:41:14

信息安全字化轉(zhuǎn)型

2022-09-16 10:00:34

物聯(lián)網(wǎng)制造業(yè)

2023-04-09 14:58:05

DevOps開發(fā)

2021-08-09 08:53:46

人工智能機(jī)器學(xué)習(xí)AI

2023-09-01 10:40:52

人工智能人工驅(qū)動

2010-08-05 17:40:19

IBM DB2數(shù)據(jù)移動

2020-10-09 14:44:57

程序員開發(fā)技術(shù)
點贊
收藏

51CTO技術(shù)棧公眾號