分类: Sybase
2008-04-10 20:19:46
来源:qqread 作者:afiewqf |
不足
首先,Sybase Central慢地惊人。我猜想这是使用远程数据库API和Java造成的不可避免的后果之一,但是不提太痛苦了。也许Sybase能通过开发一个GTK、KDE或WxWindows版本的界面,才能更好地向Linux爱好者展示。
另一个问题是我只能通过在Sybase Central树状途中的asademo/Java Objects/Packages路径定位我登记的类,问题是几乎所有sun(故意用双关语)下面的Java类也出现在该表中,它与极慢的滚动一起,使得寻找一个特定类的要求变得难上加难。而且,自从你通过类图标的属性菜单将任何改动再装入到你的过程后,当开发并调试你的代码时,你可能必须多次进行这种搜索。侥幸的是,存储过程使用JDBC,因此围绕此问题还有一个好方法:给你的类增加main以允许他们成为远程应用的实用手段。这允许你在不得不在数据库登记他们而遇到麻烦前,用一个简单的编译/执行周期即可捕捉许多臭虫,但是这个解决办法有点奇特,考虑产品是一个数据库管理系统,并且DBMS应当帮助管理你的数据。Sybase并没有说它为解决提到的大量问题而正在研制过滤器。
至于ISQL,我发现,如果我改变了服务器端的代码,ISQL直到我重新连接到数据库才识别出变化。这实际上式一件好事-它保证正在运行的应用将不会突然发现他们的服务器端组件自行改动。但是它没被文档记录,并且我浪费了一些时间尝试弄明白为什么我的改变没被客户登记。我也发现了如果你在一个过程或函数使用错误的参数类型或数量,服务器将返回一个“过程没找到”的错误。我想这是因为他们使用一个乱名(name-mangling)技术以允许过程名字的多态性。但是这在数据库存储过程的上下文有些混乱。再者,后端好像不提供标准Java包装(wrapper)类作为参数的变换器(像Integer和Double那样),用如Integer或Double那样的原语,否则你将遇到“过程没找到”的错误。
但是一旦你熟悉它,使用Sybase SAS的Java存储过程是很容易的,要考虑到它是一种高级特性。
管理
Sybase提供很多基本的数据库管理工具用于安全性、网络连接、数据库复制、存储过程管理等。Sybase Central以树状结构提供存储过程和用户资料等的数据库信息。Sybase将它的复制代理移植到Linux,它允许DBA把数据库以高度定制的方法复制。然而,Sybase公司还没移植它的复制服务器到Linux平台(尽管它说工作正在进行)。如果你想为你的数据库提供ASE的全部动力,只有到这样的移植成形,否则你无法运行单独在一个不同的平台上运行ASE复制服务器(例如Solaris)。然后你能在Linux系统上运行实际的数据库,使用复制代理的Linux版本。注意那种低频、简单的复制也用SQL Remote管理而不必干扰一个单独数据库。
Sybase已经努力减少调节和管理企业级数据库管理系统的大部分复杂性。有一个内置的查询优化程序能从早先的询问学习以变得更聪明,动态优化而非要求很多秘传的数据库管理员的绝技,因为DBMS是公开的。最终目标是允许非数据库管理能有效地运用数据库。Sybase完成一部分这个值得称道的目标,甚至从版本6.0.3开始消除一些缺陷,例如,为一个使用-c选项启动的SQL服务器实例(instancs)调节缓存大小,过去一直很重要(一般到期望的数据库最大尺寸的大约20%)。也有必要使用-p选项增加网络包尺寸,现在这样的参数设置有更加智能化的默认值。
结论与一些工具
有很多Sybase第三方Linux程序。如果你希望使用ODBC,Openlink的ODBC驱动程序是一个好选择。Pathon用户可以结合像Marc-Andre Lemburg的mxODBC模块来访问Sybase,因为Python没有直接的捆绑。Tcl用户有点幸运:他们有Tom Poindexter的Sybtcl,它是Tcl的一个原生Sybase库。Scott Gray编写了SQSH,它是一个很受欢迎的ISQL替换品,它设计成仿真典型的Unix外壳。Martin Mevald用PHP编写了一个简单的基于Web的查询接口。Walter Rawdanik最近提出了SybSQL,一个用Qt工具包编写的SQL编辑器,它用TDS协议连接Sybase ASE或Microsoft SQL Server。最后,有一个免费软件方案-FreeTDS,它创建一个库在报文级表格式数据流来访问Sybase。当Sybase没有一个Linux客户时,这显得更加关键,但是为了Sybase数据库写操作更有效,底层的工具仍然是好方法。微软的SQL Server,它从Sybase继承了TDS,所以也能使用 FreeTDS被访问,请参见附录资源连接。
有一件事情是相当清楚:Sybase for Linux必Oracle 8.0.5 for Linux或DB2 6.0 for Linux更容易安装、设置和管理。一般地讲,可亲近性(accessibility)使得Sybase更引起人们的注意,我向没有安装和维护方面顶尖数据库管理员经验的部门和组织推荐Sybase。Sybase服务器的Central确实仍然在可用性的方面需要一些工作。一个好即时Java编译器(just-in-time Jave compiler)也许能帮助改进其性能;但是 Sybase应该理会像在视图终提供过过滤器这样的细节。Sybase的可亲近性扩大到了它的编程接口,但是JDBC驱动程序中缺乏对CLOB、BLOB和数组的支持使人们怀疑Java组件的成熟程度,目前缺乏SQLJ也是如此。这不应该有什么担心,除了最高级Java数据库程序员,但是那些在痛苦边缘人们可能会考虑Oracle或 Db2跟多的Java特性。总之, Sybase的加入广受Linux世界的欢迎,它为可能不能幸运地雇用到企业数据库管理员的人提供企业数据库管理系统。 |