我目前正在开发一个使用 COBOL 连接到 DB2 的系统。示例浏览将由以下语句启动:
EXEC SQL
DECLARE <cursor name> CURSOR FOR
SELECT
<field names>
FROM <table name>
WHERE
<conditions>
ORDER BY
<key fields>
FOR FETCH ONLY
OPTIMIZE FOR 1 ROW
END-EXEC.
EXEC SQL
OPEN <cursor name>
END-EXEC.
一旦确定浏览成功,将使用以下命令对表进行后续读取:
EXEC SQL
FETCH <cursor name>
INTO
<variable names>
END-EXEC.
例如,如果我正在浏览一个表并且返回的结果集大约有 100,000 行,那么这将需要几个小时来处理。如果我可以确保系统的其他用户在我正在浏览的同一个表上处理时不会遇到死锁(-911),这将是可以的(处理意味着选择、更新和可能删除记录)。
如何确定我正在执行的浏览操作是否可能导致其他用户死锁?
(注意:我没有做任何更新,只是纯粹检索数据)