oracle多列為空與多列不為空的區別小示例
1,測試表的多列為空與多列為空字串的區別
1,資料量是1000w
declare
type typ_tab_col1 is table of pls_integer index by pls_integer;
typ_tab_col1_1 typ_tab_col1;
begin
for i in 1..10000000 loop
typ_tab_col1_1(i):=i;
end loop;
forall i in 1..10000000
insert into t_more_col values(typ_tab_col1_1(i),null,null,null,null,null,null,null,null,null);
commit;
end;
2,列為10列
3,插入
1,空用時 已用時間: 00: 00: 19.59
2,空字串用時 已用時間: 00: 01: 00.43
3,小結:空比空字串插入更快
4,查詢
1,在有資料的基礎上
2,空時,查詢 已用時間: 00: 00: 00.31
3,空字串時,查詢 已用時間: 00: 00: 00.45
4,小結:說明查詢時空比空字串更快
5,更新
1,在有資料基礎上
2,空時,已用時間: 00: 07: 45.56 update t_more_col set col1=20,col8=20;
3,空字串時 已用時間: 00: 03: 18.40
4,小結:說明空字串比空更新要快的
6,刪除
1,在有資料基礎上
2,空時,delete from t_more_col where rownum<100000;已用時間: 00: 00: 00.62
3,空字串時 已用時間: 00: 00: 00.54
4,小結:說明空字串比空刪除快一些
7,表的結構
create table t_more_col(col1 int,col2 int,col3 int,col4 int,col5 int,col6 int,col7 int,col8 int,col9 int, col10 int);
8,資料量
1,空時,
00:05:44 SQL> select segment_name,bytes/1024/1024 mb,segment_type from user_segm
ents where segment_name='T_MORE_COL';
SEGMENT_NAME
--------------------------------------------------------------------------------
MB SEGMENT_TYPE
---------- ------------------
T_MORE_COL
120 TABLE
2,空字元時,
SEGMENT_NAME
-------------------------
MB SEGMENT_TYPE
---------- --------------
T_MORE_COL
320 TABLE
3,小結:很明顯,空比空字元佔用的儲存空間更少;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-744854/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle一列拆分為多列Oracle
- 一對多關聯表,怎麼判斷返回關聯陣列不為空的值啊?陣列
- 引數為*&與*的區別以及二維陣列傳遞時列數不對等的區別陣列
- Java 定義長度為 0 的陣列 / 空陣列Java陣列
- Oracle 多行分多列Oracle
- ORA-01440: column to be modified must be empty (修改列型別時報錯:要修改的列必須為空)型別
- oracle中多列轉行Oracle
- 二維陣列JSON.stringify 後,第二層陣列解析為空陣列JSON
- Python多個陣列合並(拼接)為一個陣列Python陣列
- Oracle多列統計資訊與直方圖對有關聯多列查詢影響Oracle直方圖
- T-SQL——將字串轉換為多列SQL字串
- JavaScript表單不為空驗證JavaScript
- 高效利用佇列的空間佇列
- mysql 空值(null)和空字元('')的區別MySqlNull字元
- JavaScript 學習筆記 - 多維陣列變為一維陣列JavaScript筆記陣列
- 對存在空值的列建索引索引
- 物件陣列與一般陣列的區別物件陣列
- PHP中二維陣列與多維陣列PHP陣列
- 記錄個Java/Groovy的小問題:空字串呼叫split函式返回非空陣列Java字串函式陣列
- Java判斷欄位是否為空,為空賦值 ?Java賦值
- 為什麼迴圈佇列要浪費一個儲存空間佇列
- JS如何判斷一個陣列是否為空、是否含有某個值JS陣列
- java大陣列劃分為若干小陣列Java陣列
- 小心這個陷阱: 為什麼JS中的 every()對空陣列總返回 trueJS陣列
- 建立包含N個空物件的陣列物件陣列
- Django中ORM找出內容不為空的資料DjangoORM
- C#陣列與集合的區別C#陣列
- Kotlin可空型別與非空型別以及`lateinit` 的作用Kotlin型別
- 多維陣列轉一維陣列(降維的多種方式)陣列
- 多維陣列陣列
- MyBatis陣列與集合判斷非空和長度MyBatis陣列
- 基於 mpvue 框架的小程式選擇元件,支援單列,多列,級聯Vue框架元件
- 為你的專案啟用可空引用型別型別
- 自增長列和序列的區別(identity與sequence的區別)IDE
- 【MybatisPlus】資料庫的datetime型別欄位為空的時候,報錯空指標?MyBatis資料庫型別指標
- PHP陣列多個欄位分別排序PHP陣列排序
- Mysql多列索引建立與優化.mdMySql索引優化
- 簡單介紹Lua一維陣列與多維陣列的使用陣列
- Excel 如何批次將矩陣(多行多列)資料轉為單行或單列資料Excel矩陣