西班牙
斯潘4
Let-the-Database-Do-the-Work.fmw
有很多方法可以“让您的数据库完成工作”,我们将研究如何使用fme来执行更高效、更快地从oracle读取数据。通过利用数据库功能,如视图、索引,SELECT语句,请WHERE子句(二)我们可以将被读取的数据量(特征和属性)限制为只读取我们翻译时需要的数据量。
尽管这个练习使用了甲骨文数据库,所讨论的概念和方法可应用于其他数据库,如PostgreSQL/PostGIS,和SQL Server是的。
只读入工作流所需的数据(属性和功能)可以提高总体性能。亚搏在线通过使用view、where子句或select语句限制从数据库中读取的功能,可以简化工作区内的数据流,从而提高其速度。
下表比较了在练习工作区中从Oracle数据库访问较小的要素子集(19412要素)时的转换时间:
* -没有几何图形
使用Oracle空间阅读器读取所有数据,使用一个测试程序来过滤StutoCal码=CA,大约需要300秒。
where子句、select语句和view方法具有较少的特性,具有相当的可比性。使用更大的特性子集,select语句被证明是一个更快的读取,因为它还限制了正在读取的属性的数量。
阅读的方法 | 读取313,270条记录的时间(秒) |
Where子句 | 25.0 |
Select语句 | 18.0 |
视图 | 24.9 |
注意:上述时间是在工作区中记录的,只有所需的读卡器处于启用状态,在完全检查关闭的情况下运行,并且所有连接的检查程序都处于禁用状态。
附件让数据库完成工作。fmw演示了从数据库中高效读取功能的多种方法。我们将使用oracle数据库中的countries表,它有超过200万个特性。练习将强调有选择地阅读我们需要的特性的重要性:让数据库完成工作。
确保一次只启用一个书签,这将有助于验证每种读取方法之间的性能差异。
例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安全亚搏在线软件公司|合法的