控制在客户端应用程序可以使用行之前是否先将行读取到客户端。
Off、Conditional、Always
Conditional
可以为单个连接或 PUBLIC 组设置此选项。设置立即生效。
此选项控制在客户端应用程序可以使用行之前,是否先将行读取到客户端。即使在客户端应用程序一次请求一行时(例如,当在游标的行上循环时),也一次读取多行,这样做可通过降低对数据库的请求数量而降低响应时间,并提高总吞吐量。
Off 表示不执行预读。
Conditional(缺省值)表示执行预读,除非游标类型为 SENSITIVE 或查询包含代理表。
Always 表示执行预读,即使游标类型为 SENSITIVE 以及游标涉及代理表。
使用 Always 值必须小心,因为它会影响某些游标语义。例如,它会使敏感游标变得不敏感。如果在预取和应用程序读取请求之间更新了值,则可能读取较旧的值。此外,对涉及代理表的游标使用预读可能会产生错误 -668。如果客户端试图重新读取预读行,则游标被限定于 FETCH NEXT 操作。如果在第一次读取列后首次绑定读取列或重新绑定读取列,或在使用 GET DATA 的某些情况下,客户端可能会试图在回退后或在读取相对位置 0 时重新读取预读行。
值敏感游标类型包括 ESQL SENSITIVE 和 SCROLL 游标类型,及 ODBC 和 OLE DB DYNAMIC 与 KEYSET 游标类型。
prefetch 选项的设置会被 Open Client 和 jConnect 连接忽略。
如果将 DisableMultiRowFetch 连接参数设置为 YES,则会忽略 prefetch 数据库选项,并且不执行任何预读。
此选项以前接受的值为 On。现在此值是 Conditional 的别名。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |