在向 postgresql 9.1 中插入大量数据时。使用 Python 脚本,我们在此查询中收到以下错误:
X:/home/hosting/apps/X 中的 psycopg2.ProgrammingError X_psycopg.py:162 在:执行“执行”( 选择 * 从 xml_fifo.fifo WHERE type_id IN (1,2) 按 type_id 排序,时间戳限制 10 ): 共享内存不足 提示:您可能需要增加 max_pred_locks_per_transaction
我们增加了这个数字,但我们仍然得到了共享内存不足(max_pred_locks_per_transaction = 192)。每次我们再次启动脚本时,它都会运行一段时间,然后给出此错误消息。在 Postgres 8.1 上我们没有这个问题。
这是一段 postgresql 日志文件:
2012-06-28 02:55:43 CEST 提示:对反斜杠使用转义字符串语法,例如 E'\\'。 2012-06-28 02:55:43 CEST 警告:在字符 271 的字符串文字中非标准使用 \\ 2012-06-28 02:55:43 CEST 提示:对反斜杠使用转义字符串语法,例如 E'\\'。 2012-06-28 02:55:43 CEST 警告:在字符 271 的字符串文字中非标准使用 \\ 2012-06-28 02:55:43 CEST 提示:对反斜杠使用转义字符串语法,例如 E'\\'。 2012-06-28 02:56:11 CEST 警告:已经有交易正在进行中 2012-06-28 02:57:01 CEST 警告:已经有交易正在进行中 2012-06-28 02:57:01 CEST 错误:共享内存不足 2012-06-28 02:57:01 CEST 提示:您可能需要增加 max_pred_locks_per_transaction。 2012-06-28 02:57:01 CEST 声明: 选择 * 从 xml_fifo.fifo WHERE type_id IN (1,2) ORDER BY type_id ASC,时间戳限制 10 2012-06-28 02:57:01 CEST 错误:共享内存不足 2012-06-28 02:57:01 CEST 提示:您可能需要增加 max_pred_locks_per_transaction。 2012-06-28 02:57:01 CEST 声明: 选择 * 从 xml_fifo.fifo WHERE type_id IN (1,2) ORDER BY type_id ASC,时间戳限制 10
会有什么问题?