Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: rozmiar danych
Forum PHP.pl > Forum > Bazy danych > PostgreSQL
php programmer
Czy da się zrobić coś takiego?

  1. SELECT REAL_SIZE(*) TABLE WHERE date>'2007-01-01'
kris2
a co to polecenie mialo by pokazać?
php programmer
Zebym wiedział jaki jest stosunek wielkosci ile zajmuja dane z poszczegolnych dni i miesiecy
kris2
hmm nie wiem może jakiś count(*) + założenie jaki duzy jest rekord? bo chyba nie chodzi ci o samo zliczenie rekordów?
zresztą w postgresie na rozmiar bazy, bo chyba o to Tobie chodzi ma wpływ też to jak często w niej sprzątasz.
najtje
Te wartości można tylko oszacować.
Załóżmy że masz tabele t ktora ma pole czas (timestamp) które określa czas wprowadzenie danych do systemu oraz jakieś dane które są gromadzone w tej tabeli, przykładowo szacujesz ze 1 wpis danych to około 100bajtów:
Poniższe zapytanie wypisuje ile danych jest w tabeli t rozbite na poszczególne miesiace.

SELECT COUNT(*)*100 AS wielkosc_danych FROM (SELECT TO_CHAR(czas,'YYYY-MM') AS c FROM t)AS q GROUP BY c


Oczywiście ilość rzeczywistych danych też jest możliwa od obliczenia ale wymagałoby to sprawdzenia jaka długość bajtów znajduje się w poszczególnym polu. Kłopotliwe, ale nie niewykonalne.
Nie słyszałem aby postgres posiadał jakieś funkcje które zwracałyby ilość danych w tabelach - a już napewno nie zapewniałby one wypisania ile w poszczególnych miesiącach zostało do tabeli wrzucone.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.