Oracle 有與無 參考 快速統計大表總記錄數

2021-10-08 08:27:20 字數 899 閱讀 1570

傳統方式

select count(*) from table_name;

select count(1) from table_name;

如果想統計一張上千萬或上億的資料量的時候直接count(*)是非常耗時的,幾千萬的資料估計都要等上好幾分鐘。

快速查詢表的總記錄數

select table_name, t.num_rows, t.last_analyzed from tabs t where table_name = 'table_name';
這裡能查出資料庫中此使用者的所有表中的記錄數。

經過查詢資料發現,從tabs表中獲取的資料不是非常準確,在tabs表中存在乙個欄位last_analyzed,有最後分析的日期,

好像都不是最新,可能導致資料不是非常準確。

可以通過在command下面執行

exec dbms_stats.gather_table_stats('【空間名稱】','【tablename】',cascade=>true);
可以重新整理tabs表中的num_rows列,以及最後更新時間

使用analyze命令或執行dbms_stats 程式包中過程能夠收集統計量,在dba_tables中能查詢到統計資訊

analyze table sun_xszz_hardship compute statistics;

execute dbms_stats.gather_table_stats('schema','table_name');

select * from user_tables where table_name='table_name';

last_analyze指的是最近一次的統計時間了

有符號與無符號

最高位為1,表示這個數為負數 最高位為0,表示這個數為正數 include int main 執行結果 正數的補碼為正數本身 負數的補碼為負數的絕對值各位取反後加1 8位整數5的補碼為 0000 0101 8位整數 7的補碼為 1111 1001 16位整數20的補碼為 0000 0000 0001...

無符號與有符號

一,小精度往大精度轉換。1.1c語言中比int小的整型 包括short unsigned short unsigned char和char 在運算中都要轉換成int然後進行運算 unsigned char a unsigned char b a b 10,a和b分別先轉換成int,再計算 1.2同精...

有監督與無監督

機器學習分為 監督學習,無監督學習,半監督學習 也可以用hinton所說的強化學習 等。簡單的歸納就是,是否有監督 supervised 就看輸入資料是否有標籤 label 輸入資料有標籤,則為有監督學習 沒標籤則為無監督學習。有監督和無監督中間包含的一種學習演算法是半監督學習 semi super...