none
Dúvida com o tamanho do Banco de Dados

    Question

  • Boa tarde,

    Gostaria de entender como funciona exatamente o tamanho do banco de dados no sql server 2008 R2. Por exemplo, ao clicar com o botão direito do mouse nas propriedades do banco, aba Geral, aparece duas informações a respeito:

    1) Tamanho
    2) Espaço Disponível

    Se os arquivos possuem aumento automático, o que seria esse espaço disponível?

    Encontrei a procedure sp_spaceused na internet, porém algumas informações não compreendi.

    Ficarei grato se puderem me explicar como funciona essa questão do tamanho, de que forma ele gerencia.

    Obrigado

    Rodrigo

    Thursday, March 22, 2012 8:32 PM

All replies

  • O seu SQL Server é o Express ?
    Qual é a versão ?
    Friday, March 23, 2012 6:01 PM
  • Rodrigo,

    Tamanho é seu tamanho atual do banco de dados, e espaço disponivel, é o maximo que seu banco pode atingir sem a necessidade de resevar mais disco fisico.

    O que acontece é o seguinte: Se voce setar seu SQL Server para expandir de 1GB em 1GB, ele sempre alocara este espaço. Imagine a seguinte situação, voce acabou de criar sua base de dados com essa configuração, e ela rapidamente atingiu 1023GB (Sendo extremamente didatico...), quando ela for alocar o proximo Byte, ele vai precisar alocar mais espaço em disco em relação a seu crescimento, portanto, sua base passara a ter 2048MB de espaço disponivel e 1024MB utilizado.


    Fabrizzio A. Caputo
    MCT
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com

    Friday, March 23, 2012 7:27 PM
  • Rodrigo,

    Tamanho é seu tamanho atual do banco de dados, e espaço disponivel, é o maximo que seu banco pode atingir sem a necessidade de resevar mais disco fisico.

    O que acontece é o seguinte: Se voce setar seu SQL Server para expandir de 1GB em 1GB, ele sempre alocara este espaço. Imagine a seguinte situação, voce acabou de criar sua base de dados com essa configuração, e ela rapidamente atingiu 1023GB (Sendo extremamente didatico...), quando ela for alocar o proximo Byte, ele vai precisar alocar mais espaço em disco em relação a seu crescimento, portanto, sua base passara a ter 2048MB de espaço disponivel e 1024MB utilizado.


    Fabrizzio A. Caputo
    MCT
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com


    Fabrizzio,

    Surgiu uma dúvida agora, por ser uma banco express ele tem limite de 10gb. Como vou saber qual o real valor do espaço disponível que um database possui em relação aos 10gb sem olhar os arquivos físicos?

    Rodrigo

    Friday, March 23, 2012 8:17 PM
  • Veja se este script ajuda:

    Select MF.database_id,sd.name,cast(percent_used as numeric(25,2)) percent_used,cast(size/100 as numeric(25,2)) size, cast(max_size/100 as numeric(25,2)) max_size,'data' typefile
    from 
    (
    	select database_id,Sum(cast(size as numeric(25,10)))*100/Sum(cast(max_size as numeric(25,10))) percent_used,Sum(cast(size as numeric(25,2))) size,Sum(cast(max_size as numeric(25,2))) max_size from sys.master_files
    	where type_desc='rows' and max_size>0
    	group by database_id
    ) MF Inner Join
    	sys.databases sd on MF.database_id=sd.database_id
    Where
    	is_read_only=0
    


    View Ricardo Muramatsu's profile on LinkedIn

    Saturday, March 24, 2012 3:17 PM
  • Veja se este script ajuda:

    Select MF.database_id,sd.name,cast(percent_used as numeric(25,2)) percent_used,cast(size/100 as numeric(25,2)) size, cast(max_size/100 as numeric(25,2)) max_size,'data' typefile
    from 
    (
    	select database_id,Sum(cast(size as numeric(25,10)))*100/Sum(cast(max_size as numeric(25,10))) percent_used,Sum(cast(size as numeric(25,2))) size,Sum(cast(max_size as numeric(25,2))) max_size from sys.master_files
    	where type_desc='rows' and max_size>0
    	group by database_id
    ) MF Inner Join
    	sys.databases sd on MF.database_id=sd.database_id
    Where
    	is_read_only=0
    

    Ricardo,

    Mas o que exatamente deve apresentar com esse script? Quando executo em qualquer database aparece sempre a mesma informação. Penso que seja algo mais geral. Podes me explicar?

    Rodrigo


    View Ricardo Muramatsu's profile on LinkedIn


    Monday, March 26, 2012 11:19 AM