收藏本站 
广告服务 
网站地图 
>> 本频道近100000余篇各类电脑技术、网络技术、软件技术、网页及平面设计等方面的电脑教程,我们的原则:不是精华拒不收录!
先飞电脑技术网技术文章数据库开发Sybase
网络编程 | 网站建设 | 网络技术 | 设计教程 | 软件教学 | 程序开发 | 数据库开发 | 教育认证 | 硬件维护 | 媒体动画 | 机械电子 |

一次读取多行这种方式是怎样改善性能的

[ 作者:佚名    转贴自:网络转载    阅读次数:10    更新时间:2007-9-17 11:24:00   录入:刘光勇 ]        
    多行读取

某些接口提供了一次将多行读取到数组中的下几个字段的方法。通常,您执行单独的读取操作越少,服务器必须响应的单个请求也就越少,性能也就越好。修改后的检索多行的 FETCH 语句有时也称为宽读取。使用多行读取的游标有时称为块状游标或胖游标。

使用多行读取

在 ODBC 中,您可以通过设置 SQL_ROWSET_SIZE 属性来设置每一次调用 SQLFetchScroll 或 SQLExtendedFetch 返回的行数。

在嵌入式 SQL 中, FETCH 语句使用 ARRAY 子句控制一次读取的行数。

Open Client 和 JDBC 不支持多行读取。但它们可以使用预读。

用可滚动游标读取

ODBC 和嵌入式 SQL 提供了使用可滚动游标和动态可滚动游标的方法。

这些方法使您能够一次向前移动多行,或在结果集中向后移动。

JDBC 和 Open Client 接口不支持可滚动游标。

预读不适用于可滚动操作。例如,读取相反方向中的行并不能预读前面的多行。

通过游标修改行

游标的用途不仅仅是读取查询的结果集。您还可以在处理游标时修改数据库中的数据。这些操作通常称为定位插入、更新和删除操作,或者如果操作是插入操作,则称为 PUT 操作。

并非所有的查询结果集都允许定位更新和删除。如果您在不可更新的视图上执行查询,则基表不会发生更改。此外,如果查询涉及连接,则必须指定您希望从哪一个表删除,或者您希望更新哪些列,何时执行操作。

只有在表中的某些非插入列允许 NULL 或有缺省值的情况下,才能通过游标执行插入。

将多行插入对值敏感的游标 (键集驱动的游标)时,新插入的行出现在游标结果集的末尾处。即使这些行与查询的 WHERE 子句不匹配,或者 ORDER BY 子句通常将它们放置在结果集的其它位置,这些行也会出现在最后。此行为与编程接口无关。例如,当使用嵌入式 SQL PUT语句或 ODBC SQLBulkOperations 函数时就会是这样。通过选择游标中最后一行可以找到最后插入行的自动增量列的值。例如,在嵌入式 SQL中,可以使用 FETCH ABSOLUTE -1 cursor-name 来获取该值。此行为的

结果是,对值敏感的游标的首次多行插入的代价会很大。

ODBC、嵌入式 SQL 和 Open Client 允许使用游标进行数据修改,JDBC 1.1 却不允许。对于 Open Client,您可以删除和更新行,但您只能在单表查询上插入行。

可以从哪个表中删除行?

如果您试图通过游标执行定位删除,那么请按如下所示的方法确定从哪个表删除行:

1. 如果 DELETE 语句中未包括 FROM 子句,那么游标必须只在单个表上。

2. 如果游标用于连接查询 (包括使用包含连接的视图),则必须使用FROM 子句。只会删除指定表的当前行,连接中涉及的其它表不会受到影响。

3. 如果包括了 FROM 子句,但未指定表所有者,那么指定表为第一个与其值相匹配的相关名。

4. 如果给出了相关名,就用该相关名来确定指定表的名称。

5.如果没有给出相关名,那么指定表的名称必须是游标中可明确标识的表名。

6.如果给出的 FROM 子句中指定了表的所有者,那么指定表的名称必须像游标中的表名一样是明确可标识的。

7. 定位 DELETE 语句可以使用于在视图上打开的游标,只要视图是可更新的即可。

取消游标操作

您可以通过接口函数取消请求。从 Interactive SQL 中,您可以通过按下工具栏上的 " 中断 SQL 语句 " 按钮 (或者通过从 SQL 菜单中选择 " 停止 ")来取消请求。

如果您取消正在执行游标操作的请求,则游标的位置是不确定的。取消请求之后,您必须按照其绝对位置给游标定位,或者将它关闭。

文章首页【加入到收藏夹】告诉好友】【打印此文】【关闭窗口
  版权声明:本站提供的“一次读取多行这种方式是怎样改善性能的”版权归文章所有者,转载请注明出处!
 ·上一篇文章:理解Sybase游标的可用性和属性      ·下一篇文章:如何使用游标执行不同类型的操作
相关文章
·一次读取多行这种方式是怎样改善性能的[10]
·一次编辑 GridView 的所有行[32]
·利用GridView显示主细表并一次编辑明细表所有数据的例[45]
·四步帮你解决不能一次创建多表问题[54]
·广东移动处罚182家SP 正式实施“一次性淘汰”[4]
网站主页 | 收藏本页 | 联系我们 | 广告服务 | 站点地图 | 会员注册 | 招聘信息 | 内容指正

联系QQ:先飞电脑技术网站事务联系QQ,点击可以直接留言. 32933427 电话:13710542091 [世界排名] 鄂ICP备05005890号 先飞电脑教程网