在向 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
会有什么问题?