RSS订阅
RSS订阅TT数据库

Oracle数据库10g:数据仓储前10位的新特征(一)

2008-8-29  选择字号:  | |
打印本文章

导读:本文主要介绍Oracle数据库10g数据仓储前10位的新特征,包括SQL Model子句、 SQL Access Adviser、多维OLAP引擎的完善、Tune MView Advisor和Query Rewrite的完善等。

关键词:Oracle 数据仓储 Oracle数据库10g新特征

正在加载数据... 【TechTarget中国原创】也许现在最受关注的就是Oracle数据库10g新数据仓储特征中的SQL Model子句。该子句让用户将类似数据表模型插入select语句中,以前这在某种程度上属于的OLAP服务器关注的范围,如Oracle Express以及Oracle 9i OLAP。SQL Model子句给Oracle分析性的查询一个全新的标准并且说明了SQL一般工作模式的一些缺陷。

【TechTarget中国原创】1、SQL Model子句

  也许现在最受关注的就是Oracle数据库10g新数据仓储特征中的SQL Model子句。该子句让用户将类似数据表模型插入select语句中,以前这在某种程度上属于的OLAP服务器关注的范围,如Oracle Express以及Oracle 9i OLAP。SQL Model子句给Oracle分析性的查询一个全新的标准并且说明了SQL一般工作模式的一些缺陷。

  SQL Model子句是为了说明以下的情况:在过去,客户先从关系型数据库中取出数据、然后将它们导入数据表如Microsoft Excel中。通常,这些模式涉及一系列宏,这些宏里的数据集合包括一系列的商业尺度、时间变更周期以及一套复杂的、很难用平常的SQL表示的商务尺度。我设法说服一些客户SQL的局限就是利用一系列独立的Excel表格,而这些给客户提供了他们所需要的分析能力、复制数据的可测量性和可靠性、然而不久缺乏对全局的控制能力也显露出来。

  SQL Model子句让一般的SQL语句能够在select语句的结果中创建多维数组,在这一数组上执行一些行间和列间的计算,然后对包含模式结果的数据表格进行升级。使用MODEL子句的SQL示例如下:

select SUBSTR(country,1,20) country, SUBSTR(prod,1,15) prod, year, sales
FROM sales_view
where country IN  (’Italy’,’Japan’)
MODEL   RETURN updateD ROWS
  PARTITION BY (country)
  DIMENSION BY (prod, year)
  MEASURES (sale sales)
  RULES  (
    sales[’Bounce’, 2002] = sales[’Bounce’, 2001] +
      sales[’Bounce’, 2000],
    sales[’Y Box’, 2002] = sales[’Y Box’, 2001],
    sales[’2_Products’, 2002] = sales[’Bounce’, 2002] + sales[’Y Box’, 2002])
ORDER BY country, prod, year;

  2. SQL Access Adviser

  Oracle数据库10g Server Manageability的部分特征就是,SQLAccess Adviser给指定的工作量介绍了最佳索引和物化视图的结合。可行方案就是(通过DBMS_ADVISOR包)或者通过新推出的基于Web的Oracle Enterprise Manager中的 Advisor Central元件,SQLAccess Adviser最初就和Oracle9i一起建立在索引和概要advisor并且为调优和总结存储数据提供了一站式的服务。

  更多有关SQLAccess Adviser的信息可以在OracleWorld这一白皮书上找到。

  3、多维OLAP引擎的完善

  利用Oracle9i,起初单独的Express多维engine现在就合和Oracle数据库连成一体了。通过Oracle10g,传统的关系型Oracle engine就开始明显起来。

  首先就是对较大的分析型workspaces进行划分、目前在Oracle OLAP世界引进了一些高级分区选项,它们备受Oracle数据库用户的欢迎。现在分析型workspaces储存在Oracle schema的AW$表中,这一分析型workspaces能够用AW$表再进行细分并允许你将单独的analytic workspace列入10GB字段,每个表的行中都包含着一个部分。这些表还可以像其他Oracle表一样进行细分,你也可以将行放入每个表空间。再者,每个表空间当然储存在不同的物理磁盘单元的数据文档里。虽然这样做有很有益,细分分段大小也就是细分数据的唯一方法,你也不能在analytic workspace对每个分区进行详细说明。Oracle 10g OLAP现在还详细说明在analytic workspace里的哪一个对象划分进哪一个区域,如果对象相当大还能通过分段大小再进行细分。

  分析空间的变化现在能够被区分开来,通过一些尺度或CONCAT尺度参考。10g的多维engine将每个变量部分当作单独的物理对象储存,这样就可以直接在AW$表里区分行(允许你越过不同的表空间和物理磁盘驱动器);而变量则对于应用软件、简化数据模型以及允许Oracle执行所有高难度的任务来说仅仅只是一个对象。

  另外一个杰出的新特征并在含Express的参量真正有所提高的是对多用户读写访问个人分析工作空间的支持。过去,Express的缺点之一就是只有一个用户可以在读写模式里访问Express数据库,这样就导致了Express开发人员开发了一整套可以选择的解决方案允许写入Express数据库。在Oracle 10g OLAP中,分析性工作空间可以附加在MULTI模式里。然后应用程序ACQUIRE单个变量附在用于读写的分析工作区间中。一旦获得一个对象(被Oracle多维engine锁定),就可以进行更新了,并且应用程序随时都可以进行修改。之后update命令的执行结果跟变量相反,该命令后跟有COMMIT。RELEASE命令的执行结果也和变量相反,这样做就是为了使其它的应用程序能够被写入。

  观察多维引擎如何处理multi-write access很有趣。过去当用户读写口连接数据库时,带Express的数据库空间就能增大。其他的数据库在read mode中访问它,这是因为Express要为每个用户复制数据库以便让他们对待数据的意见一致。如果单个变量从10g的analytic workspace复制到临时的workspace中,这样的更新我一点都不觉得奇怪。随着更新过程往后推移(旧版本的Express Excel Add-In),最后发生变化时——主要问题就是如何数据库大小,因为旧版的Express的处理方法比理想状态下的要少。

  Oracle10g OLAP改善了集合体,并且还允许现在一些规则成为AGGREGATE命令的数据源,这样就排除了计算和存储数据的必要,尤其是动态集合又是另外一个领域,在这里Oracle9i和现在的10g OLAP都得到了显著的改善,超过了Express。如果现存的Express系统还存在着这个问题,那么它还是值得我们更加仔细观察的。

  更多有关Oracle10g OLAP型特征的详细信息在《OLAP 应用开发指南》中能够找到,《OLAP DML指南》以及Bud Endress写的白皮书OLAP Option to the Oracle10g Database也能找到相关信息.。

  4、Tune MView Advisor和Query Rewrite的完善

  Query Rewrite( Oracle从具体层级到总表的直接的查询能力)是Oracle8i和9i数据仓储的最佳特征之一,但是这些特点不稳定,你通常会发现这些查询不能被重写。有时是因为你打破了Query Rewrite的某一项限制,有时是因为你的实体化视图没有包含正确的column和集合。Oracle10g对Query Rewrite作了一系列的改善并且实体化视图调优过程应该让这一改善过程的收获更加丰富。有了Oracle数据库10g,当你的select 语句含有分析功能时,query rewrite现在就可以实现了,快速联结和设置操作系统,如union、MINUS和INTERSECT。此外,你现在能用到一个hint:/*+ REWRITE_OR_ERROR */,它在query rewrite不发生的情况下将会终止SQL语句。


 SQL> select   /*+ REWRITE_OR_ERROR */
  2      s.prod_id,
  3      sum(s.quantity_sold)
  4  FROM      sales s
  5  GROUP BY  s.prod_id;
FROM     sales s

  第四行的错误:ORA-30393:该语句中的查询块不能重写

  Oracle9i自带两个包:DBMS_MVIEW.EXPLAIN_MVIEW和DBMS_MVIEW.EXPLAIN_REWRITE,这两个包可用来诊断为什么实体化视图不能用于query rewrite。然而,尽管这些包已经告诉了你为什么不会产生rewrite,它们仍然需要你解决如何更改你的create MATERIALIZED VIEW语句确保正确产生rewrite。Oracle数据库10g还带有一个新的advisor包:DBMS_ADVISOR.TUNE_MVIEW,这个包输入了一个create MATERIALIZED VIEW DML语句后,结果就得出了一个支持query rewrite和快速更新的特征。

  更多有关Query Rewrite和Tune MView Adviser功能改善的信息和能在TUNE_MVIEW在线文件上找到,即《Query Rewrite在线文件》和《Oracle数据库10g Oracle-by-Example指南》。

  5、数据泵:导入和导出的代替者

  数据泵代替了旧版IMP和EXP应用程序,它用于创建Oracle表、schemas以及数据库的逻辑备份。数据泵属于服务器应用程序(与IMP以及EXP相反,二者都属于客户应用程序),在Beta测试数据导出时的速度是旧版EXP的两倍,数据导入时是旧版IMP的10倍。数据泵是可以随时获取,通过DBMS_DATAPUMP或通过IMP和EXP(又叫IMPDB和EXPDB)还可以通过Oracle Enterprise Manager 10g.的一部分wizard delivered来获取。

  数据泵(和新版的IMPDB以及EXPDB应用程序)在过去的IMPORT和EXPORT上进行了很大的改善,包括可恢复/可重新开始的任务、automatic two-level parallelism、使用DBLINK/listener服务名称代替pipes的网络模式(所以能选择独立的表、视图、包、索引等等进行导入或者导出而不仅仅是表或者含有IMPORT 和EXPORT 的schema),API允许第三方ETL包带有数据泵功能。


Oracle数据库10g:数据仓储前10位的新特征
 Oracle数据库10g:数据仓储前10位的新特征(一)
 Oracle数据库10g:数据仓储前10位的新特征(二)

还没有登录? 阅读全文请先登录或注册
用户名:(请填写您的E-mail做为登录账号)
  • 获取最新的IT业界资讯、市场动态、行业趋势等独家原创内容。
  • 分享国内外技术专业人士提供的技巧经验。
  • 利用专注IT的技术资源中心,不断更新专业知识。
  • 享受白皮书、Webcast等系列特色增值服务。
  • 免费参加TT中国举办的各种会员活动。
  • 更多的精彩服务,在不断开发中……
用户名:(请填写您的E-mail)
密 码:
 永久登录
请输入您的登录email:
银行破产、全球经融动荡、信贷危机和销售萎靡使公司面临艰难的选择。一些公司仍在拥有少量资源中艰难度日,或者是面临破产,各地的主管都在努力寻找消减公司成本的方法。
由于商业智能(BI)赢得了众多的客户,Oracle在刚刚结束的民意调查中获得了更多的选票。Oracle在Gallup的产品经理Jim Collison表示,Gallup所获得的测验和调查的数据……
甲骨文和英特尔在正于美国旧金山举行的甲骨文全球大会上宣布,将就云计算展开合作,促企业级云计算发展及提高云计算的效率和安全性。
商业数据库在传统领域的市场竞争大的格局已经保持多年未变,而在商业智能方面的竞争日趋白热化。关于BI产产品市场份额的数据各大厂商一直众说纷纭,调查机构的数据……。
什么是BI?BI就是企业在运营上高层主管必须看的各项数据及分析资料。这些资料包括"总体运营状态分析统计资料"、"业务业绩达标率统计"……

本专题介绍了SQL Server服务代理相关方面的知识,包括SQL Server服务代理基础知识的概述、消息类型、契约、队列、服务和路由、SEND命令和RECEIVE命令、性能方面的改进以及对运行状况的监控等等。

无论你是否计划将SQL Server数据库转换服务(DTS)包迁移到SQL Server集成服务(SSIS)或在SQL Server 2005里运行DTS包,都需要专家的一些建议。这一指南主要是包括SSIS的相关基础知识、技巧帮助你进行SSIS调整,还介绍了SSIS有经验的一些用户的具体信息等等。

子查询是一个嵌套在SELECT、INSERT、UPDATE 或DELETE语句,或者另一个子查询里的查询。一个子查询可以返回一行或多行结果给父查询。标量子查询是只返回一个值的查询:只有一个字段的一行记录。标量子查询可以在SQL语句的大多数位置,其中你可以使用一个表达式或一个实际值。
最新更新
专家答疑
技巧
Michael Hillenbrand
你能解释一下数据库公程师、数据库架构师以及数据库管理员之间有什么区别吗?数据库管理员:这是目前最普遍使用的对从事数据库相关的工作的人的头衔。数据库管理员是指……
Brian Peasland
对5GB大小的Oracle 7.3存档或删除的最佳办法是什么?为了便于管理机构查询,这些数据至少需要再用20年的时间。我们担心将来我们不能对它重新获取并迁入一个更新的……
Rudy Limeback
如何创建一个约束限制2007年1月1日之前的日期被录入?用CHECK约束就可以。如下面的示例……