转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> 其他 >> 正文
InterBase6.5的新特性         ★★★★

InterBase6.5的新特性

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1522 更新时间:2009/4/22 23:21:21

InterBase 6.5的新特性

作者:Bill Todd(Team B成员)

译者:TR@SOE

原文URI:http://www.dbginc.com/tech_pprs/IB65New.html

 

1.         改良的缓存管理

2.         指定处理器

3.         取消语句的执行

4.         元数据的安全性

5.         64位文件I/O

6.         ROWS语句

7.         以XML格式导出数据

8.         其它改进

 

改良的缓存管理

以前版本的IB中,如果缓存大小超过10,000页,性能将会降低。该问题已经得到解决。缓存管理器也进行了修改以减少处理大缓存时的额外开销。例如,65,000页缓存所需要的总内存量几乎减少了七兆。分配大的缓存空间的速度也得到提高,缓存I/O的效率也得到提高。在重负载的情况下,线程需要等待共享页面加锁而带来的问题也消除了。增加缓存大小并不能保证性能的提升,但是绝对没有坏处。在用户数量大和其它一些场合时,增加缓存大小会有帮助。

 

指定处理器

在运行WINDOWS的多处理器系统中,IB超级服务器版本的性能可能会降低,因为WINDOWS总是不断地将IB进程从一个处理器切换到另一个处理器。WINDOWS版本的IB 6.5可以在IBCONFIG文件中包含如下的指令:CPU_AFFINITY 1从而将IB进程与第一个处理器连接。通过改变数值,你可以将IB与任何一个处理器相连接,方法是修改对应的处理器的位。例如,1代表第一个处理器,2代表第二个,4代表第三个。这一语法允许你将IB分配到多个处理器上(IB 7将支持SMP)。例如,将IB分配到第二和第三个处理器时,可以这么写:CPU_AFFINITY 6。

 

取消语句的执行

使用IB的API函数isc_dsql_free_statement可以取消任何语句的执行。如下所示:

 

procedure TfrmMain.StopQuery;

var

 StatementHandle:   TISC_STMT_HANDLE;

 ISC_Result:        ISC_STATUS;

begin

  StatementHandle := dmMain.ibqTest.StmtHandle;

  ISC_Result := isc_dsql_free_statement(StatusVector, @StatementHandle, DSQL_CANCEL);

  if ISC_Result > 0 then IBDatabaseError;

end;

 

在运行语句的线程里不可以取消该语句的执行。因此,如果你希望使用这一特性,应该在一个后台线程中运行你的SQL语句。该API调用不能与dbExpress或BDE合用,因为它们无法存取语句的句柄,而该句柄是函数调用的第二个参数。InterBase Express中提供该属性,上面的代码来源于一个使用IBQuery的应用,它在一个后台线程中执行SQL语句。

你取消一个语句的执行时,IB的表现如同该语句执行时出错。被取消的语句所做的一切更改都被取消,但是事务处理还将继续。你可以决定是要确认还是回滚事务。如果在ISQL中你执行了一个语句而又想取消,只要按Ctrl+C即可。

 

元数据的安全性

在以前版本的IB中,你可以对系统表格授权或取消授权,但是这些权限在备份与恢复后不被保留。IB 6.5就不同了。你创建的任意数据库中所有系统表格给予公众的缺省权限是SELECT。它允许用户看到系统表格,但是他们不能直接修改系统表格。IB 6.5有三个脚本,让你轻松地修改系统表格的权限。readmeta.sql脚本将系统表格给予SELECT权限。writemeta.sql脚本将系统表格给予所有的权限。而blindmeta.sql脚本收回所有给予的权限。

限制系统表格的存取绝不是限制用户使用DDL语句修改数据库中其它表格的能力。IB引擎做了改进,即使用户没有权限直接操作系统表格,引擎也可以代替用户对系统表格进行相应的修改。

如果你用blindmeta.sql脚本或者在早期的IB中使用REVOKE语句收回了系统表格存取的所有权限,你将根本无法存取数据库。IB 6.5第一次打开IB 6 ODS 10的数据库时,ODS版本将自动升为10.1,而公共用户对系统表格的权限将设置为SELECT。IB 6.5也能打开ODS 9的数据库,但是不会对它们进行任何修改。

IB 6.0可以打开一个ODS 10.1的数据库,只要公共用户对系统表格的权限至少为SELECT以上。不过,如果数据库由IB 6.0服务器备份和恢复,所有对系统表格的存取限制都将丢失。

 

64位文件

IB现在支持Windows/Linux/Solaris平台上的64位文件I/O操作。数据库的大小将只受限于硬盘的大小。只有2.4核心的Linux提供64位文件I/O。如果是以前版本的Linux,IB 6.5将自动使用32位文件I/O,其表现如IB 6.0一样。

 

ROWS语句[1]

ROWS语句是IB SQL的扩展,它允许你控制SELECT/UPDATE/DELETE语句所影响的范围。ROWS语句的语法如下:

 

ROWS <lower_value> [TO <upper_value>] [BY <step_value>] [PERCENT] [WITH TIES]

ROWS语句在SQL语句中的位置如下:

<from_clause>

  <where_clause>

    <group_by_clause>

      <having_clause>

        <order_by_clause>

          <rows_clause>

要理解ROWS语句到底能做什么的最好方法是看看例子。本文中所有的例子都使用IB自带的Employee数据库。第一个例子中,ROWS语句与ORDER BY连用,选出折扣最高的五个记录:

SELECT * FROM SALES

ORDER BY DISCOUNT DESC

[1] [2] [3]  下一页


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台