怎么解決關(guān)于數(shù)據(jù)庫insert問題-創(chuàng)新互聯(lián)

本篇內(nèi)容主要講解“怎么解決關(guān)于數(shù)據(jù)庫insert問題”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“怎么解決關(guān)于數(shù)據(jù)庫insert問題”吧!

創(chuàng)新互聯(lián)長期為1000多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為通山企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì),通山網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

早上對幾個10幾G,上億的大表進(jìn)行分區(qū)改造,一切都正常。到中午吃飯前對一個10萬數(shù)據(jù)的小表進(jìn)行插入時出問題了,很簡單的插入語句,跑了1個小時沒跑完。

插入語句如下,由于保密緣故,相關(guān)信息已做修改:

insert into SGS.PROD_NEW
  select *
    from SGS.PROD
   where CREATE_TIME >= to_date('2019-01-01', 'yyyy-mm-dd')
     and CREATE_TIME < to_date('2020-07-01', 'yyyy-mm-dd');

這張表大概10萬行數(shù)據(jù),沒有主鍵,沒有索引。

set linesize 200;
col owner for a20;
col table_name for a40;
col tablespace_name for a20;
select owner, table_name, num_rows,TABLESPACE_NAME
  from dba_tables
 where table_name = 'PROD';
 
OWNER                TABLE_NAME                                 NUM_ROWS TABLESPACE_NAME
-------------------- ---------------------------------------- ---------- --------------------
SGS                  PROD                                     107220      GC_TS

表的大小60M左右:

SQL> select bytes/1024/1024 MB from dba_segments where segment_name='PROD';
        MB
----------
        59

第一次表插入時,跑了1個小時沒跑完,看了下等待事件,一直都是direct path read,也沒有阻塞,為什么那么慢,看了下執(zhí)行計(jì)劃是走的全表掃描,執(zhí)行計(jì)劃沒有問題:

------------------------------------------------------------------------------------------------------
| Id  | Operation                | Name                      | Rows  | Bytes | Cost (%CPU)| Time     |
------------------------------------------------------------------------------------------------------
|   0 | INSERT STATEMENT         |                           |       |       |  2027 (100)|          |
|   1 |  LOAD TABLE CONVENTIONAL | PRODNEW                   |       |       |            |          |
|*  2 |   TABLE ACCESS FULL      | PROD                      |   106K|    67M|  2027   (1)| 00:00:01 |
------------------------------------------------------------------------------------------------------

干脆停掉,開并行跑。開了16個并行跑插入,跑了半個小時還是卡在那,同樣的等待事件。百思不得其解,想到了是不是統(tǒng)計(jì)信息過期了,但是這個表沒有索引,統(tǒng)計(jì)信息過不過期都是走全表掃描。想到了buffer cache太小,但是我前面上億的數(shù)據(jù)也能插進(jìn)去,按理說不可能。想到了是不是temp表空間太小的緣故,查了下,32G,使用率0.01%。

渾水摸魚1個小時后,想到了有沒可能是大字段導(dǎo)致的呢?查了下,果然,MMP,有一個CLOB類型字段100G的大小。

SQL> select bytes/1024/1024/1024 GB from dba_segments where segment_name in (select segment_name from dba_lobs where table_name='PROD');  
        GB
----------
.000061035
104.680664

最后的解決辦法:

開16并行,將時間段拆分為1個月一個月插。最后有點(diǎn)注意的是,表空間要足夠大。

到此,相信大家對“怎么解決關(guān)于數(shù)據(jù)庫insert問題”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

新聞標(biāo)題:怎么解決關(guān)于數(shù)據(jù)庫insert問題-創(chuàng)新互聯(lián)
文章位置:http://muchs.cn/article12/cedodc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、微信公眾號、動態(tài)網(wǎng)站網(wǎng)站制作、網(wǎng)站建設(shè)響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)