Koliko prostora zauzima baza, koliko je slobodno…?

Evo jedan SQL upit, pomocu kojeg mozete saznati neke informacije o zauzecu vasih baza, broju tabela u bazi i sl.

SELECT s.schema_name naziv_baze,
  CONCAT(
    IFNULL(
      ROUND(
       (SUM(t.data_length)+SUM(t.index_length))/1024/1024
      ,3)
     ,0.00)
   ,' MB') as ukupna_velicina_baze,
  CONCAT(
    IFNULL(
      ROUND(
        (
          (SUM(t.data_length)+SUM(t.index_length))
          - SUM(t.data_free)
        )/1024/1024
      , 3)
    , 0.00)
   ,' MB') as iskoristeno_MB,
  CONCAT(
    IFNULL(
      ROUND(SUM(data_free)/1024/1024,3)
    ,0.00)
  ,' MB') as slobodno_MB,
  CONCAT(
    IFNULL(
      ROUND(
       (
         (
          (SUM(t.data_length)+SUM(t.index_length))
           -SUM(t.data_free)
         ) /
         ((SUM(t.data_length)+SUM(t.index_length)))*100)
      ,3)
    ,0)
   ,' %') as iskoristeno_procenata,
  COUNT(table_name) as broj_tabela
FROM information_schema.schemata s
LEFT JOIN information_schema.tables t
       ON s.schema_name = t.table_schema
WHERE s.schema_name != 'information_schema'
GROUP BY s.schema_name
ORDER BY 1;


2 Responses to “Koliko prostora zauzima baza, koliko je slobodno…?”

  1. Goran Pilipovic Says:

    Hahaha…. ovo je najluđi query koji sam video do sada :)

    Šta reći? Kako te nije mrzelo? :)

  2. dejan Says:

    Kad te nesto zanima, onda nista nije tesko. :)

Leave a Reply