Excel Server Tutorial
  • <fieldset id="bfedg"><code id="bfedg"><canvas id="bfedg"></canvas></code></fieldset>
      • <col id="bfedg"></col><del id="bfedg"><embed id="bfedg"><small id="bfedg"></small><b id="bfedg"></b></embed><var id="bfedg"></var></del><datalist id="bfedg"><ul id="bfedg"><input id="bfedg"><acronym id="bfedg"></acronym></input><area id="bfedg"><rt id="bfedg"><mark id="bfedg"></mark></rt></area></ul><figcaption id="bfedg"></figcaption></datalist><area id="bfedg"><cite id="bfedg"></cite></area>

          • <option id="bfedg"><ul id="bfedg"><acronym id="bfedg"><progress id="bfedg"><li id="bfedg"><small id="bfedg"><fieldset id="bfedg"><mark id="bfedg"></mark></fieldset></small></link></progress></acronym><aside id="bfedg"></aside></ul></option>

              • <cite id="bfedg"></cite>

                  Excel服务器2010教程
                  • 1.1 Excel服务器是信息系统工具
                  • 1.2 用Excel服务器构建信息系统
                  • 1.3 基于Excel服务器的信息系统架构
                  • 1.4 如何学习使用Excel服务器
                  • 2.1 安装概述
                  • 2.2 服务端安装
                  • 2.3 客户端安装
                  • 2.4 Excel服务器的组成模块
                  上一节 下一节

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

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

                  能够使用它们的场合包括:

                  • 定义填写规范
                  • 定义表间公式
                  • 在模板上映射数据表

                   

                  Oracle外部数据源查询优化

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

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

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

                  “以Oracle 为外部数据源时,优化执行速度....”,如下图所示。

                  oracle外部数据源查询优化

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

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

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

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

                   

                  上一节 下一节
                  关闭 在线客服

                  威尼斯2933.com手机版 |威尼斯官方网站2933.com |澳门在线威尼斯官方 | |手机版 | | 32355.com威尼斯官方|威尼斯1274.com手机版|威尼斯v939.com平台|2933.com威尼斯|2933威尼斯城2933.com|威尼斯澳门官方vns1033.com|