DELETE 比 SELECT 執行速度慢的測試報告
問題:
發現delete的速度不如select的速度快。
分析: 導致delete速度慢的原因有很多,比如:
1.寫大量回滾段,在RAID5上,寫回滾段速度相對更慢,因為需要寫校驗位。
2.外來鍵影響
3.線上使用者訪問過多,可以檢視v%session_wait
4.沒有表分割槽
實驗:
基礎環境建設:
建立tom使用者的表空間:
create tablespace tom datafile '/opt/ora10g/oradata/jssbook/jssbook/tom01.dbf'
size 50m
autoextend on
next 32m maxsize 2048m
extent management local;
確定建立成功:
select name from v$datafile where name like '%tom%'
建立tom使用者:
create user tom identified by "123456"
default tablespace tom
profile default
account unlock;
給使用者授權:
grant dba to tom
檢視臨時表空間:
select * from v$tempfile
注:建立時沒有宣告,則用預設表空間。
檢視test表大小:
select segment_name, bytes
from user_segments
where segment_type = 'TABLE';
檢視test資料量:
select count(*) from test
向test表中注入資料:(該語句執行了N遍,不停地刷,不停地刷,最後達到150萬條資料之後進行下一步---delete)
insert /* +append */ into tom.test select * from all_objects
刪除表中資料:
delete from test;
下面是監控語句,這些語句分別在剛注入150萬條資料之後執行了一下,抓了下狀態,然後又在執行過程中抓了一下。(只抓取相應變化比較大的欄位)
1.檢視回滾段資訊(tom使用者使用)
select * from V$ROLLSTAT
刪除之前資訊:
刪除之後資訊:
2.檢視回滾段的統計資訊:
SELECT n.name, s.extents, s.rssize, s.optsize, s.hwmsize, s.xacts, s.status
FROM v$rollname n, v$rollstat s
WHERE n.usn = s.usn;
刪除之前資訊:
刪除之後資訊:
3.檢視回滾段使用者徵用情況:
SELECT s.username, u.name
FROM v$transaction t, v$rollstat r, v$rollname u, v$session s
WHERE s.taddr = t.addr
AND t.xidusn = r.usn
AND r.usn = u.usn
ORDER BY s.username;
只有一個使用者使用回滾段:
結論:
用delete刪除確實產生了大量回滾段,是造成delete速度慢的因素之一。
其他原因正在補充中ing... 歡迎多多討論!~
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20802110/viewspace-1063226/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- httprunner(11)執行測試報告HTTP測試報告
- jmeter無圖形介面執行測試並生成報告JMeter
- SAP下載報表速度慢?為啥你不試試python多執行緒Python執行緒
- TDengine 和 InfluxDB 查詢效能對比測試報告UX測試報告
- pytest+allure 生成測試報告,如果保留同一個測試用例的多次執行的日誌資訊。測試報告
- Allure測試報告測試報告
- Jumper 測試報告測試報告
- 雲測試報告測試報告
- 測試計劃和測試報告測試報告
- 關於四種獲取當前執行方法名稱方案的基準測試報告測試報告
- SQLite語句(二):INSERT DELETE UPDATE SELECTSQLitedelete
- 測試總結報告
- 滲透測試報告測試報告
- grequests 執行併發測試與 jmeter 併發結果對比JMeter
- postman的批次執行:用於多條介面測試用例批次執行,輸出介面測試測試結果Postman
- 如何執行指定的單元測試
- Select語句執行順序
- H5測試||測試執行階段測啥H5
- 軟體效能測試報告應該包含的內容,效能測試報告需要多少錢?測試報告
- Cypress系列(41)- Cypress 的測試報告測試報告
- 輸入測試報告的步驟測試報告
- DBeaver如何生成select,update,delete,insert語句delete
- 有必要進行第三方軟體測試機構安全測試嗎?安全測試報告如何報價?測試報告
- pytest-testreport測試報告測試報告
- CNAS軟體測試報告測試報告
- 雲服務測試報告測試報告
- 軟體測試--缺陷報告
- Angular單元測試如何只執行指定的測試用例,提高測試速度Angular
- 移動app效能測試有哪些需要進行?效能測試報告如何收費?APP測試報告
- 測試前奏 之 dos字元頁面執行 monkeyrunner 命令報錯字元
- 走進Java介面測試之測試報告ExtentReportJava測試報告
- 軟體安全測試報告怎麼編寫?出具測試報告的權威軟體檢測機構測試報告
- 軟體驗收測試 常見測試報告的型別測試報告型別
- sql select語法執行順序SQL
- pytest多程式/多執行緒執行測試用例執行緒
- 【版本升級】PerfDog新增多維度測試報告對比功能、iOS電量測試功能升級測試報告iOS
- Linux命令執行時間測試Linux
- SpringBoot Cli 安裝執行測試Spring Boot
- Jest如何有序地執行測試