這可能嗎?或者至少我正在尋找一個表中所有行的大小列表。Oracle - 如何獲取特定行的實際大小?
回答
select vsize(col1) + vsize(col2) + vsize(col3) +
long_raw_length_function(long_col) + DBMS_LOB.GETLENGTH(blob_col)
from table
where id_col = id_val;
爲long_raw_length_function,看到這個Get the LENGTH of a LONG RAW
如果你有興趣的平均行長度,你可以分析表(與DBMS_STATS包),然後查詢ALL_TABLES.avg_row_len
。
它可能會返回比以字節爲單位的列長度總和更低的值。它是否反映了平均行所佔用的實際磁盤存儲空間? – Olexa 2015-02-04 09:55:53
@olexa:看起來'avg_row_len'列考慮到[數據佔用的實際空間](https://asktom.oracle.com/pls/asktom/f?p = 100:11:0 :::: P11_QUESTION_ID:1041629603947)。在大多數情況下,它應該大於各列大小總和的平均值,因爲列級別的開銷很小(例如:當不在行末時,NULL值會佔用空間)。當然,如果你使用壓縮,它可能會更低。 – 2015-02-04 10:45:13
下面是我已修改的查詢以獲取表格行長度,當您沒有任何數據時。這可以幫助您進行容量規劃環境設置:
SET serveroutput ON linesize 300
DECLARE
v_max_size NUMBER := 0;
v_owner VARCHAR2(30);
v_table_name VARCHAR2(30);
v_data_type VARCHAR2(30);
v_data_length NUMBER := 0;
v_data_precision NUMBER := 0;
CURSOR CUR_TABLE
IS
SELECT DISTINCT table_name
FROM all_tab_columns
WHERE owner='TMS_OWNER'
AND table_name NOT LIKE 'VIEW%'
ORDER BY table_name;
BEGIN
FOR Tab IN CUR_TABLE
LOOP
v_table_name := Tab.table_name;
v_max_size := 0;
FOR i IN
(SELECT owner,
table_name,
data_type,
data_length,
data_precision
FROM all_tab_columns
WHERE owner ='TMS_OWNER'
AND table_name = v_table_name
)
LOOP
IF i.data_type = 'NUMBER' THEN
v_max_size := (v_max_size + i.data_precision);
ELSE
v_max_size := (v_max_size + i.data_length);
END IF;
END LOOP;
dbms_output.put_line(chr(10));
dbms_output.put_line('Table ='||v_table_name||', Max Record Size = '||v_max_size||' bytes');
END LOOP;
END;
/
- 1. 獲取屏幕的實際大小
- 2. 獲取zip條目的實際大小
- 3. Obj-C controller.view.frame獲取實際大小
- 4. JFrame:獲取實際內容大小
- 5. 如何獲取getaddrinfo返回的ai_addr-> sa_data的實際大小()
- 6. 如何使用C++獲取文件的實際大小?
- 7. 如何在MPMoviePlayerController中獲取視頻的實際大小?
- 8. 如何在WinRT GridView中獲取ItemContainer的實際大小
- 9. 如何在ComponentOne中獲取C1TrueDBGrid控件的實際大小?
- 10. 在調整大小後獲取實際圖像大小
- 11. 獲取實際文件大小VS表觀大小在GO
- 12. 如何獲取TextView的實際行數?
- 13. 如何找出JFrame的實際大小?
- 14. 如何在Kivy中獲取小部件/佈局的實際大小?
- 15. 在GTK中,如何在屏幕上獲取小部件的實際大小?
- 16. 如何捕獲self.view的特定大小
- 17. 如何獲取表格的特定行?
- 18. 如何調整實際大小::圖片
- 19. 文件的實際大小
- 20. 如何獲取實際的數據包大小'的byte []`數組中的Java UDP
- 21. 定義的大小不會屏幕上的實際大小
- 22. 如何獲得設備的實際大小?
- 23. 如何通過自動佈局獲得實際大小的UIView
- 24. 如何獲得轉換CALayer的實際大小?
- 25. 如何獲得實際的[UIScreen mainScreen]幀大小?
- 26. 如何獲取在TextView中呈現的文本的實際框架大小Android
- 27. 如何查找從iOS Image Picker獲取的JPEG的實際大小?
- 28. 使用jQuery獲取實際的<body>字體大小
- 29. 在Java中獲取文件的實際大小?
- 30. 在呈現之前獲取用戶控件的實際大小
是'herp/derp'替代'foo/bar'作爲代碼中的任意示例嗎? – xdumaine 2011-05-03 15:10:31
'herp/derp'明顯更具貶義性,所以我認爲不是。 – 2011-05-03 15:11:23
謝謝,但如果其中一列是長生的呢? – danboh 2011-05-03 15:11:53