2016-07-19 6 views
0

Я пытаюсь найти запрос, чтобы найти строки и байт счетчика таблицы из каждой серверной базы данных:запрос, чтобы найти сверку таблицы

I) MySQL
II) Oracle DB
III) SQL Сервер
IV) Монго DB
V) Teradata

+0

что ваш вопрос, а что у вас есть? –

+0

У вас есть правильное направление для MySQL, oracl и sql-сервера прямо сейчас. Ищете правильный запрос в MySQL, sql-сервере, 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

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

Отлично! Как я могу выбрать размер хранилища и подсчет из статистики mongodb? – sethu

+0

'db.stats()', поможет нам найти общие документы в коллекциях в db - Обновлено то же самое в разделе ответов –

1

ответ на # 1 show table status или select table_name, table_rows from information_schema.tables

+0

Из всего списка информации, которую он предоставляет, как я могу конкретно получить счетчик строк? – sethu

+0

Я обновил свой ответ – Henry

+0

Спасибо. Проверьте, правильно ли это: выберите table_name, table_Rows, data_length из information_Schema.tables, где table_name = 'XXX'; – sethu

Смежные вопросы