如果是oracle9i版本,可以考慮如下兩步實(shí)現(xiàn):
成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),中寧企業(yè)網(wǎng)站建設(shè),中寧品牌網(wǎng)站建設(shè),網(wǎng)站定制,中寧網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,中寧網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
(10g直接執(zhí)行第二步就可以了)
統(tǒng)計(jì)一個用戶下所有表的行數(shù):
1.exec
dbms_stats.gather_schema_stats(owner='用戶名');
2.select
sum(num_rows)
from
user_tables;
統(tǒng)計(jì)全庫所有表的行數(shù):
1.exec
dbms_stats.gather_database_stats(estimate_percent='30');
2.select
sum(num_rows)
from
dba_tables;
生產(chǎn)環(huán)境中需謹(jǐn)慎考慮收集新的統(tǒng)計(jì)信息后對應(yīng)用產(chǎn)生的影響。
1、首先在oracle中avg函數(shù),使用聚合函數(shù)在計(jì)算平均值時,會報空值排除在外。
2、剛才在計(jì)算的時候結(jié)果是550,而comm列的總各為2200?所以計(jì)算平均時是只計(jì)算了除了空值的行。
3、需要注意的是,avg函數(shù)不能單獨(dú)使用在where條件中不然會報如下錯誤。
4、如果想要查詢出大于平均值的結(jié)果,需要使用group by ...having?子句。
5、然后用count函數(shù)用來統(tǒng)計(jì)列的總行數(shù),就完成了。
在oracle10g中統(tǒng)計(jì)所有表的數(shù)據(jù)量可以使用如下語句:
select sum(NUM_ROWS) from dba_tables where owner like 'SCHEMA';
說明一下,以上語句必須用dba賬戶登錄才可以使用,其中的SCHEMA參數(shù)就是當(dāng)前用戶名。
chema為數(shù)據(jù)庫對象的集合,為了區(qū)分各個集合,我們需要給這個集合起個名字,這些名字就是我們在企業(yè)管理器的方案下看到的許多類似用戶名的節(jié)點(diǎn),這些類似用戶名的節(jié)點(diǎn)其實(shí)就是一個schema,schema里面包含了各種對象如tables, views, sequences, stored procedures, synonyms, indexes, clusters, and database links。
一個用戶一般對應(yīng)一個schema,該用戶的schema名等于用戶名,并作為該用戶缺省schema。這也就是我們在企業(yè)管理器的方案下看到schema名都為數(shù)據(jù)庫用戶名的原因。
最簡單的理解:以你計(jì)算機(jī)的用戶為例,如果你的計(jì)算機(jī)有3個用戶,那么每個用戶登錄系統(tǒng)看到的(使用的)功能是可以不相同的!