O aplicativo que estamos construindo pode executar consultas de inserção bastante grandes. Existe limite para que minha consulta postgres possa ter apenas um certo número de caracteres?
relate perguntas
-
Posso ativar o PITR depois que o banco de dados foi usado
-
Práticas recomendadas para executar a replicação atrasada do deslocamento de tempo
-
Os procedimentos armazenados impedem a injeção de SQL?
-
Sequências Biológicas do UniProt no PostgreSQL
-
Qual é a diferença entre a replicação do PostgreSQL 9.0 e o Slony-I?
Para a versão atual do PostgreSQL (até 9.5), as consultas são recebidas por um backend em um
Stringinfo
buffer, que é limitado aMaxAllocSize
, definido como:(consulte http://doxygen.postgresql.org/memutils_8h.html )
Portanto, uma consulta é limitada a 1 gigabyte (2^30) de tamanho, menos 1 byte para um byte nulo final.
Se um cliente tentar enviar uma consulta maior, um erro semelhante a este retornará:
onde
N
é o tamanho da consulta.Esteja ciente de que uma consulta logo abaixo
1GB
pode exigir que grandes quantidades de memória sejam analisadas, planejadas ou executadas, além desse1GB
buffer.Se você precisar inserir uma grande série de literais em uma consulta, considere a alternativa de criar uma tabela temporária,
COPY
linhas nela e fazer com que a consulta principal se refira a essa tabela temporária.