span8
span4
Let-the-Database-Do-the-Work.fmw
有许多方法来“让你的数据库做的工作”,我们就来看看如何使用FME进行更有效和更快的从Oracle读取。通过利用的数据库功能,如视图,索引,SELECT语句,WHERE子句;我们可以限制的数据(功能和属性)的体积被读取,只有那些我们需要在我们的翻译。
虽然这个练习使用的甲骨文数据库,这些概念和讨论可以应用于其它数据库,如方法PostgreSQL/PostGIS和SQL Server。
阅读只在数据(属性和功能)您需要为您的工作流程可以提高整体性能。亚搏在线通过限制功能正在从数据库视图,WHERE子句或SELECT语句读取,可以简化您的工作空间中的数据流量从而提高它的速度。
下面的图表的访问从在锻炼工作区中的Oracle数据库特征(19412个特征)的较小子集当翻译倍进行比较:
* -没有几何图形
在所有使用Oracle空间读取器的数据的读出,用Tester来过滤用于COUNTRYCODE = CA大约需要300秒。
随着数量较少的特点,where子句,select语句,并查看方法是很具有可比性。使用具有较大的子集,SELECT语句被证明是一个更快的读取,因为它也限制了读取属性的数量。
阅读的方法 | 读取313,270条记录的时间(秒) |
Where子句 | 25.0 |
Select语句 | 18.0 |
视图 | 24.9 |
注意:上述时间是从一个工作区记录有仅期望读者启用,润全检验出,任何连接检查员禁用。
所附让数据库完成的Work.fmw演示了许多方法来有效地从数据库中读取功能。我们将使用国家表,其中有超过200万的功能Oracle数据库。该演习将强调选择性地读取的功能,我们需要的重要性:让数据库做的工作。
确保只允许一次一个书签,这将帮助验证的阅读每种方法之间的性能差异。
例1 -带有Where子句的表
请注意,通过使用导航Where子句,FME将限制功能读取那些满足条件。
例2 -带有Select语句和Where子句的表
您可以使用SELECT语句代替WHERE缩小体积的数据通过读取,减少了一些功能阅读与阅读感兴趣的属性。但是,如果你使用SELECT语句,你是在替换FME的默认SELECT,所以如果你有一个空间列,你需要显式地将它包含在SELECT语句中,即:
从FME中选择GEONAMEID, NAME, ASCIINAME, LATITUDE, LONGITUDE, COUNTRYCODE, TIMEZONE, GEOM。COUNTRYCODE='CA'和FEATURECLASS='P'的国家
减少属性读取数量的另一种方法是使用Exposed Attributes选项,以及一个WHERE:
例3 -读取视图
此书签中的阅读器已配置为从Oracle数据库读取视图。这个视图是从nations基表生成的,其中的where子句设置为COUNTRYCODE = CA和FEATURECLASS = P。
您还可以将一个视图与一个WHERE组合在一起,这样可以为您读取的数据提供更大的灵活性。
例4 -读取数据并使用FME过滤或细化
注意,当使用where子句(COUNTRYCODE = ' CA '),然后使用AttributeFilter或Tester进一步细化数据,使其记录的FEATURECLASS值为' P '时,会对性能产生影响。在两个变压器之间,AttributeFilter具有更好的性能。
示例5 - SQLCreator和SQLExecutor
这两个SQLCreator和SQLExecutor可以用来查询数据库。在这个书签中,我们根据国家代码和FEATURECLASS选择国家的所有属性。尽管这两个转换器产生相同的结果,但是您可以使用SQLCreator简化您的工作空间,从而消除对创建者/发起者的需求。
SQLExecutor在使用已读取的其他数据启动数据库查询时非常有用
例6 -带索引和不带索引的读取
使用sqlcreator在COUNTRYCODE和FEATURECLASS上创建复合索引。在特性类型属性中,where子句被设置为使用为更有效的读取而创建的索引。这比示例1中使用的where子句更快地读取特性。
创建国家索引IDX_COUNTRIES (COUNTRYCODE, FEATURECLASS);
例7 -使用FeatureReader
使用FeatureReader执行空间查询。创建属性或空间索引会对数据读取的性能产生很大影响。FME的大多数数据库阅读器将利用空间索引进行MBR相交。您可以使用一个初始化特性(本例中的Shapefile)来执行一个空间查询,以在读取时限制输入的数据。
例8 -使用搜索信封
在导航器中,您可以定义一个搜索信封来帮助限制正在读取的特性的数量。指定四个坐标和坐标系。还有一个选项,夹搜索信封。这比读取所有数据然后通过工作空间中的坐标剪切要快。
©2019安全亚搏在线软件公司|法律