1. <em id="n8uh6"></em>
            1. Excel服务器2010教程
              • 1.1 Excel服务器?#20999;?#24687;系统工具
              • 1.2 用Excel服务器构建信息系统
              • 1.3 基于Excel服务器的信息系统架构
              • 1.4 如何学习使用Excel服务器
              • 2.1 安?#26696;?#36848;
              • 2.2 服务端安装
              • 2.3 客户端安装
              • 2.4 Excel服务器的组成模块
              上一节 下一节

              22.3 使用外部数据源中的表/视图

              外部数据源中的表或视图被注册了以后,有权限的设计者就可以在设计时使用它们。

              能够使用它们的场?#20064;?#25324;:

              • 定义填写规范
              • 定义表间公式
              • 在模板上?#25104;?#25968;据表

               

              Oracle外部数据源查询优化

              想获得外部数据源中的数据,常见的做法是定义一个提数表间公式,用外部数据源的表作为来源表。

              需要大家知道的是,Excel服务器所用的数据库是SQL Server,所?#21368;?#25968;据的读写功能,全部是在SQL Server 数据库中执行,即使是读取其它数据库的外部数据源的数据,也是从SQL Server 中向其它数据库发出一个查询命令,其它的数据库把查询的结果返回给SQL Server,SQL Server再把结果反馈到界面上,我们就能看到查出的数据。通过SQL Server去查询其它数据库的数据,会有一个限制,就是利用不到其它数据库中的索引,当外部数据源表中数据量很大时,查询速度会比?#19979;?#20026;了解决这个问题,针对Oracle 外部数据源,专门设计了查询优化的功能。

              当我们定义一个提数公式,其来源数据表选择了Oracle外部数据源的表后,界面上可能会出现如下的选项:

              “以Oracle 为外部数据源时,优化执行速度....?#20445;?#22914;下图所示。

              oracle外部数据源查询优化

              图中可见,执行速度有两种可选的模式:普通模式和优化模式。当然优化模式执行速度更快,所以我们肯定愿意选择优化模式。但是,要想选择优化模式,您定义的表间公式必须同时满足以下条件:

              1)表间公式的来源数据,都是同一个oracle外部数据源中的表
              2)筛选条件或填充方式中,不能用到?#33322;?#31639;年、结算月、结算日等带结算时间的函数,此集合函数。
              3)筛选条件或填充方式中,不要用到“本报表.明细表.字段”

              如果不能同时满足以上条件,就不能选择优化模式,只能选择普通模式,相应地,也就达不到优化查询速度的目的。至于为什么要满足以上条件,涉及到具体的数据库查询处理方式,这里不细说,只?#24471;?#19968;点,满足这些条件保证了,所做的数据库查询只需要对Oracle 数据库查询,不需要对Oracle的表和SQL Server的表联合查询。 单纯对Oracle 数据库查询,可以优化,而一旦需要对Oracle 的表和SQL Server的表做联合查询,就会受到 SQL Server 的制约,就无法做查询优化。

              这也提示了我们针对Oracle外部数据表定义提数公式时的一个原则,就是,让提数公式做的事情尽量“单纯?#20445;?#23425;可多写几条公式。 比如,我们?#32422;?#20570;的Excel服务器的系统要管理订单,订单本身是Excel服务器的模板上定义的表,订单上用的产品信息来自SAP系统,是Oracle外部数据源的表,以往,我们可能定义一条公式,公式的来源数据是两个表,一个是oracle 外部数据源的产品表,另一个是订单模板?#31995;?#35746;单表,这样写公式很简洁,一条公式就把要查的数据查了,但是不够“单纯?#20445;?#22240;为一条公式,既用到了oracle中的表,也用到了SQL Server中的表,这样的公式是无法优化的。为了达到优化的目的,我?#20999;?#35201;把这一条公式拆成?#25945;?#20844;式,一条查Oracle 中的产品,另一条查订单,如此满足了优化的条件,查Oracle 产品的公式就可以选优化模式。

               

              上一节 下一节
              关闭 在线客服
              吉林十一选五玩法 体彩河南11选5玩法 安徽11选5跨度走势图 福彩中奖结果 上海25选5开奖公告 十三水游戏手机下载 11选五 陕西11选5走势图前3直 冬季捕鱼视频 贵州十一选五app下载 双色球全部开奖历史记录 南粤36选7最新开奖结果 扑克牌21点游戏怎么代理 59博论坛彩金 360彩票网 云南快乐十分号码统计