2013-09-16 4 views
0

Я прочитал много потоков о hwo, чтобы получить размер (размер файла) таблицы или базы данных.Получить размер базы данных конкретных данных

Что я хочу знать, если есть возможность выбрать размер только определенных строк.

Некоторые думают, что, как (псевдо-код):

Select Size(*) from TableA where UserID = 10; 

Кто-нибудь знает, если это possbile?

С уважением Штеффен

--- обновление --------

Может IST дизайн слабости моей структуры.

У меня есть 1 таблица, где много данных вставки клиента. Теперь я хочу рассчитать некоторую цену, основанную на размере файла вставляемых пользователем данных.

Возможно, есть другой способ, например, кластеризация или что-то еще, а затем использовать некоторую Системную таблицу. Возможно, вы помогли мне с небольшим намеком.

Важно, чтобы не каждый пользователь имел собственную базу данных.

+0

You может получить приближение, умножив размер таблицы на количество строк, которые вы хотите, и разделив все на количество всех строк в таблице. Проблема в том, что некоторые типы данных различаются по размеру. – Crisfole

ответ

0

очень грубо руководство будет заключаться в использовании DataLength() функцию

SELECT DataLength(col1) + DataLength(col2) + ... + DataLength(colN) 
FROM your_table 
WHERE condition = true 

Если вы хотите, в общей сложности за столом, то вам просто нужно использовать агрегатные функции в обычном режиме:

SELECT Sum(DataLength(col1) + DataLength(col2) + ... + DataLength(colN)) 
FROM your_table 
WHERE condition = true 
+0

Thats to slow :( Я говорю о таблице с, на данный момент, 432,018,309 строк. Я удлиняю свой вопрос a Немного. – Gordon2001

+0

@ Gordon2001 Если это слишком медленно, то метод Row-Count является единственным запросом – RBarryYoung

+0

@ Gordon2001 Я часто использую этот скрипт для вычисления * оцененного * размера таблиц в базе данных. Найдите размер всей таблицы, затем разделите ее на количество строк для данного пользователя, чтобы дайте * приблизительный * результат. – gvee

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