2016-07-19 17 views
0

Ich versuche, um die Abfrage nach der Zeile und Byteanzahl einer Tabelle von jeder Backend-Datenbank zu finden:Abfrage rowcount eine Tabelle finden

I) MySQL
II) Oracle DB
III) SQL Server
IV) Mongo DB
V) Teradata

+0

, was Ihre Frage, was du hast? –

+0

Haben Sie jetzt die richtige Richtung für MySQL, Oracl und SQL Server. Suche nach der richtigen Abfrage in MySQL, SQL Server, Mongodb und Teradata. Ich suche nach einer Abfrage, die diese Informationen aus Tabellenstatistiken erhalten kann. – sethu

Antwort

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; 

Ergebnis für Größe wie dieses

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 In mongoDB würden wir nicht haben, Zeilen und Spalten, aber alles ist Dokumente, so können wir die Anzahl der finden Dokumente in einer Sammlung und deren Größe.

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

Das Ergebnis wäre

{ 
     "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 
} 
dieser ähnlich sein

Hier Objekte ist die Anzahl der Dokumente in Sammlungen

Mehr info - http://docs.mongodb.com/manual/reference/method/db.stats

Oracle

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

Perfekt! Wie kann ich die Speichergröße und die Anzahl der Mongodb-Statistiken auswählen? – sethu

+0

'db.stats()', wird uns helfen, die gesamten Dokumente über Sammlungen in der db zu finden - Das gleiche wurde im Antwortbereich aktualisiert –

1

Die Antwort auf # 1 ist show table status oder select table_name, table_rows from information_schema.tables

+0

Wie lade ich die Zeilenanzahl aus der gesamten Liste der Informationen, die sie bereitstellt, speziell ab? – sethu

+0

Ich aktualisierte meine Antwort – Henry

+0

Danke. Überprüfen Sie, ob dies richtig ist: Wählen Sie Tabellenname, Tabellennummer, Datenlänge aus Information_Schema.Tabellen, wobei Tabellenname = 'XXX'; – sethu