2016-07-19 75 views
0

我試圖找到查詢,以找到每個後端數據庫中的表的行和字節計數的行數:查詢查找表

I)的MySQL
II)的Oracle DB
III)SQL服務器
IV)蒙戈DB
V)的Teradata

+0

什麼是你的問題,你有什麼? –

+0

現在有適合MySQL,oracl和sql server的正確方向。在MySQL,sql server,mongodb和Teradata中尋找正確的查詢。我正在查找可以從表格統計中獲取這些信息的查詢。 – sethu

回答

2

MySQL的

Row count of single table 

select count(*) from table_name; 

Row Count of all tables 

SELECT SUM(TABLE_ROWS) 
    FROM INFORMATION_SCHEMA.TABLES 
    WHERE TABLE_SCHEMA = 'database schema name'; 

Size 
SELECT table_schema as `Database`, 
    table_name AS `Table`, 
    round(((data_length + index_length)/1024/1024), 2) `Size in MB` 
FROM information_schema.TABLES 
ORDER BY (data_length + index_length) DESC; 

結果的大小會是這樣

Database Table    Size in MB 
sakai sakai_realm_rl_fn 22.39 
sonar file_sources  8.56 
sakai sakai_site_tool 4.55 
sakai sakai_event  4.03 
sonar issues    3.75 
sakai sakai_site_page 3.03 
sonar project_measures 2.03 

MongoDB的 MongoDB中,我們沒有的行和列,但一切文件,所以我們可以找到的數集合中的文檔和大小。

db.collection.stats() // example db.stackoverflow.stats(), where stackoverflow is my collection name 

結果將與此類似

{ 
     "ns" : "test.stackoverflow", 
 "count" : 2, 
 "size" : 224, 
     "avgObjSize" : 112, 
     "numExtents" : 1, 
 "storageSize" : 8192, 
 "lastExtentSize" : 8192, 
     "paddingFactor" : 1, 
     "paddingFactorNote" : "paddingFactor is unused and unmaintained in 3.0. It remains hard coded to 1.0 for compatibility only.", 
     "userFlags" : 1, 
     "capped" : false, 
     "nindexes" : 1, 
     "totalIndexSize" : 8176, 
     "indexSizes" : { 
       "_id_" : 8176 
     }, 
     "ok" : 1 
} 


db.stats(); // Will help us in finding the total documents in the database 

Executing it in mongo shell, will a give a result like this 

{ 
     "db" : "test", 
     "collections" : 9, 
     "objects" : 1000063, 
     "avgObjSize" : 112.32, 
     "dataSize" : 112007640, 
     "storageSize" : 175837184, 
     "numExtents" : 20, 
     "indexes" : 12, 
     "indexSize" : 169938160, 
     "fileSize" : 2080374784, 
     "nsSizeMB" : 16, 
     "extentFreeList" : { 
       "num" : 70, 
       "totalSize" : 760217600 
     }, 
     "dataFileVersion" : { 
       "major" : 4, 
       "minor" : 22 
     }, 
     "ok" : 1 
} 

這裏對象是整個文檔集合

數量

更多信息 - http://docs.mongodb.com/manual/reference/method/db.stats

甲骨文

Row count of single table 
select count(*) from table_name 

Total Size 
select * from dba_data_files; 

select round((sum(bytes)/1048576/1024),2) from v$datafile; 

To execute these queries you need to login as system user with all priveleges 
+0

完美!我如何從mongodb統計信息中挑選存儲大小和數量? – sethu

+0

'db.stats()',將幫助我們在db中查找集合中的所有文檔 - 在答案部分更新了相同的內容 –

1

答案#1是show table statusselect table_name, table_rows from information_schema.tables

+0

從它提供的整個信息列表中,我該如何專門檢索行數? – sethu

+0

我更新了我的答案 – Henry

+0

謝謝。檢查是否正確:從information_Schema.tables中選擇table_name,table_Rows,data_length,其中table_name ='XXX'; – sethu