久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

Oracle刪除數(shù)據(jù)非常慢的問題及解決

瀏覽:41日期:2023-03-12 15:25:29
目錄
  • Oracle刪除數(shù)據(jù)非常慢
    • 問題描述
    • 處理流程
  • Oracle刪除表中大量數(shù)據(jù)卡頓的解決
    • 正確姿勢(shì)
  • 總結(jié)

    Oracle刪除數(shù)據(jù)非常慢

    記一次數(shù)據(jù)庫刪除數(shù)據(jù)非常慢的處理流程

    問題描述

    單表數(shù)據(jù)3000條左右,根據(jù)主鍵刪除需要509秒

    處理流程

    一. 首先查看SQL的執(zhí)行計(jì)劃:執(zhí)行計(jì)劃正常,cost只有1,用到了主鍵索引。

    二. 查看等待事件:

    SELECT s.sid, s.serial# FROM v$locked_object lo, dba_objects ao, v$session s WHERE ao.object_id = lo.object_id AND lo.session_id = s.sid;

    先執(zhí)行目標(biāo)sql,在執(zhí)行上面的sql獲得sid

    select * from v$session_wait where sid = (上面sql查詢的sid)

    顯示的event是db file sequential read,也沒有異常。

    三. 測試其他其他表和系統(tǒng)io是否有問題,沒問題則進(jìn)行下一步

    四. 追蹤sql日志:

    alter session set events="10046 trace name context forever,level 12";delete from t_table1 where id = xxx(這里是目標(biāo)sql)alter session set events="10046 trace name context off";

    若不知道日志文件存放位置執(zhí)行以下sql會(huì)返回路徑

    SELECT VALUE  FROM V$PARAMETER WHERE NAME = "user_dump_dest" 

    找到最新的trace文件

    執(zhí)行—>tkprof orcl_ora_3708.trc myoutput.txt將trc文件轉(zhuǎn)換為簡單明了的txt文件

    查看執(zhí)行刪除過程中有哪個(gè)操作時(shí)間過長

    我發(fā)現(xiàn)的問題是在實(shí)行刪除的過程中這個(gè)表有外鍵關(guān)聯(lián)主表,會(huì)先查一遍這個(gè)表里有沒有那個(gè)設(shè)備的記錄,elapsed表示耗時(shí)

    解決辦法,外鍵加索引,或者取消外鍵代碼里維護(hù)外鍵。

    Oracle刪除表中大量數(shù)據(jù)卡頓的解決

    首先,不要被標(biāo)題誤導(dǎo),分兩種情況。

    • 1. 刪之前原表數(shù)據(jù)不要。
    • 2. 刪之前保留原表數(shù)據(jù)。

    正確姿勢(shì)

    oracle數(shù)據(jù)表有過萬條數(shù)據(jù)后,刪除數(shù)據(jù)就變的特別慢,有時(shí)甚至?xí)ㄋ溃栽诖朔窒硪粋€(gè)小白操作,望對(duì)各位有幫助。

    刪除前: 從原表創(chuàng)建新表,即:先把需要的某些數(shù)據(jù)導(dǎo)入到新表里,或者不加條件即要?jiǎng)h除原表的所有數(shù)據(jù),從原表創(chuàng)建臨時(shí)表(新表)。(相當(dāng)于原模原樣拷貝一份原表)

    create table tempTable as select id,name from table1 where sj>to_date("2013-7-31 23:59:59","yyyy-mm-dd hh24:mi:ss");

    接著直接 drop 刪除原表,把新表名稱改為原表名稱。到此結(jié)束,這樣直接跳過刪除原表因數(shù)據(jù)多造成卡死的現(xiàn)象節(jié)省時(shí)間。

    總結(jié)

    以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持。

    標(biāo)簽: Oracle
    相關(guān)文章:
    主站蜘蛛池模板: 湘阴县| 黔西县| 张家港市| 甘孜县| 石河子市| 临朐县| 谷城县| 太湖县| 常熟市| 民乐县| 宁津县| 巴林右旗| 罗平县| 延吉市| 通渭县| 赣州市| 东方市| 平和县| 兰州市| 武平县| 屯昌县| 成都市| 手游| 鹿邑县| 靖边县| 柯坪县| 喀喇| 英吉沙县| 顺平县| 佳木斯市| 黄石市| 抚州市| 阿尔山市| 宣化县| 扶绥县| 开原市| 美姑县| 诸暨市| 芒康县| 武穴市| 临夏县|