limite de registro sql express

SQL Server

24/10/2019

Oi pessoal,

Uso o sql express 2014, e estou tentando inserir 5000 registros e só vai até 1000.

Até onde sei, tem limite de 10GB por base. Meu arquivo .mdf e está em 5000KB

Alguem me dizer porque não consigo inserir mais registro?
Simone

Simone

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

24/10/2019

O limite é de 1 processador e 1GB de memória por instância, e de 10GB por banco de dados.
o que pode ter acontecido: teu banco não alcançou 10GB de tamanho, mas o processo pode ter alcançado 1GB de memória.
GOSTEI 0
Simone

Simone

24/10/2019

O limite é de 1 processador e 1GB de memória por instância, e de 10GB por banco de dados.
o que pode ter acontecido: teu banco não alcançou 10GB de tamanho, mas o processo pode ter alcançado 1GB de memória.


Como faço pra saber se é esse o problema de fato?
GOSTEI 0
Fernando Junior

Fernando Junior

24/10/2019

O limite é de 1 processador e 1GB de memória por instância, e de 10GB por banco de dados.
o que pode ter acontecido: teu banco não alcançou 10GB de tamanho, mas o processo pode ter alcançado 1GB de memória.


Como faço pra saber se é esse o problema de fato?


Talvez um e-mail para o suporte da Microsoft.
GOSTEI 0
Simone

Simone

24/10/2019

O limite é de 1 processador e 1GB de memória por instância, e de 10GB por banco de dados.
o que pode ter acontecido: teu banco não alcançou 10GB de tamanho, mas o processo pode ter alcançado 1GB de memória.


Como faço pra saber se é esse o problema de fato?


Talvez um e-mail para o suporte da Microsoft.



Usei esse script para saber o tamanho da tabela


DECLARE @table_name VARCHAR(500) ;  
DECLARE @schema_name VARCHAR(500) ;  
DECLARE @tab1 TABLE( 
       tablename VARCHAR (500) collate database_default 
,       schemaname VARCHAR(500) collate database_default 
);  
DECLARE  @temp_table TABLE (     
       tablename sysname 
,       row_count INT 
,       reserved VARCHAR(50) collate database_default 
,       data VARCHAR(50) collate database_default 
,       index_size VARCHAR(50) collate database_default 
,       unused VARCHAR(50) collate database_default  
);  
INSERT INTO @tab1 SELECT t1.name, t2.name FROM sys.tables t1  
INNER JOIN sys.schemas t2 ON ( t1.schema_id = t2.schema_id );    
DECLARE c1 CURSOR FOR  
SELECT t2.name + '.' + t1.name FROM sys.tables t1  
INNER JOIN sys.schemas t2 ON ( t1.schema_id = t2.schema_id );    
OPEN c1;  
FETCH NEXT FROM c1 INTO @table_name; 
WHILE @@FETCH_STATUS = 0  
BEGIN   
       SET @table_name = REPLACE(@table_name, '[','');  
       SET @table_name = REPLACE(@table_name, ']','');  

       IF EXISTS(SELECT OBJECT_ID FROM sys.objects WHERE OBJECT_ID = OBJECT_ID(@table_name)) 
       BEGIN 
               INSERT INTO @temp_table EXEC sp_spaceused @table_name, false ; 
       END 

       FETCH NEXT FROM c1 INTO @table_name;  
END;  
CLOSE c1;  
DEALLOCATE c1;  
SELECT t1.*, t2.schemaname FROM @temp_table t1  
INNER JOIN @tab1 t2 ON (t1.tablename = t2.tablename ) 
ORDER BY  schemaname,tablename; 



SELECT -100 AS l1 
,       ERROR_NUMBER() AS tablename 
,       ERROR_SEVERITY() AS row_count 
,       ERROR_STATE() AS reserved 
,       ERROR_MESSAGE() AS data 
,       1 AS index_size, 1 AS unused, 1 AS schemaname





me retornou isso


tablename  row_count  reserve   Data	index_size unused  schemaname

tabelaXYZ  1003	       56 KB	40 KB	16 KB	   0 KB	   dbo



Seria isso mesmo?
GOSTEI 0
Emerson Nascimento

Emerson Nascimento

24/10/2019

é isso aqui:
SELECT
	DB.name,
	SUM(size)*8 AS Tamanho_KB,
	CAST(ROUND((SUM(size)*8)/1024.0,2) AS NUMERIC(15,2)) AS Tamanho_MB,
	CAST(ROUND((SUM(size)*8)/1024.0/1024.0,2) AS NUMERIC(15,2)) AS Tamanho_GB,
	CAST(ROUND((SUM(size)*8)/1024.0/1024.0/1000.0,2) AS NUMERIC(15,2)) AS Tamanho_TB
FROM
	sys.databases DB
INNER JOIN
	sys.master_files ON DB.database_id = sys.master_files.database_id
GROUP BY
	DB.name


GOSTEI 0
Simone

Simone

24/10/2019

é isso aqui:
SELECT
	DB.name,
	SUM(size)*8 AS Tamanho_KB,
	CAST(ROUND((SUM(size)*8)/1024.0,2) AS NUMERIC(15,2)) AS Tamanho_MB,
	CAST(ROUND((SUM(size)*8)/1024.0/1024.0,2) AS NUMERIC(15,2)) AS Tamanho_GB,
	CAST(ROUND((SUM(size)*8)/1024.0/1024.0/1000.0,2) AS NUMERIC(15,2)) AS Tamanho_TB
FROM
	sys.databases DB
INNER JOIN
	sys.master_files ON DB.database_id = sys.master_files.database_id
GROUP BY
	DB.name




Obrigada,
Meu insert deu certo, não era problema de memória.
GOSTEI 0
POSTAR