span8
span4
有很多方法可以“让您的数据库完成工作”,我们来看看如何使用FME来执行更高效、更快地从Oracle读取数据。通过利用诸如视图、索引等数据库功能,选择语句,WHERE子句;我们可以将读取的数据量(特性和属性)限制为只读取翻译中需要的数据量。
虽然这个练习使用了Oracle数据库,讨论的概念和方法可以应用到其他数据库如PostgreSQL公司/邮政总局,SQL Server。
只读取工作流所需的数据(属性和特性)可以提高整体性能。亚搏在线通过使用视图、WHERE子句或SELECT语句限制从数据库中读入的特性,您可以简化工作空间中的数据流,从而提高其速度。
下表比较了在练习工作空间中从Oracle数据库中访问更小的特性子集(19,412个特性)时的转换时间:
*-没有几何图形
使用Oracle Spatial Reader读取所有数据,并使用测试器过滤COUNTRYCODE = CA,大约需要300秒。
对于数量较少的特性,where子句、select语句和视图方法具有很强的可比性。通过使用更大的特性子集,select语句被证明是更快的读取速度,因为它也限制了被读入的属性的数量。
阅读方法 | 读取313270条记录的时间(秒) |
where子句 | 25.0分 |
选择语句 | 十八 |
查看 | 24.9条 |
注:上述时间是在只启用所需的读取器、关闭全部检查并禁用任何连接的检查器的工作空间中记录的。
附件让数据库来做这项工作。fmw demonstrates a number of ways to efficiently read in features from a database.我们将使用Oracle数据库中的Countries表,它有超过200万个特性。练习将强调有选择地阅读我们需要的特性的重要性:让数据库完成工作。
确保一次只启用一个书签,这将有助于验证每种读取方法之间的性能差异。
示例1-带有where子句的表
注意,通过在导航器中使用Where子句,FME将把读取的特性限制为满足条件的特性。
示例2-带有Select语句和Where子句的表
您可以使用SELECT语句而不是WHERE语句来减少所读取的数据量,从而减少所读取的特性的数量,并且只读取感兴趣的属性。但是,如果使用select语句,则将替换fme的默认select,因此如果有空间列,则需要将其显式包含在select语句中,即:
选择GEONAMEID,NAME,ASCIINAME,LATITUDE,LONGITUDE,COUNTRYCODE,TIMEZONE,GEOM from FME.COUNTRIES其中COUNTRYCODE='CA'和FEATURECLASS='P'
另一种减少属性读取次数的方法是使用“公开属性”选项,同时使用where:
例3-阅读视图
此书签中的读取器已配置为从Oracle数据库中读取视图。此视图是从Countries基表生成的,where子句设置为COUNTRYCODE=CA,FEATURECLASS=P。
您还可以将视图与在读取的数据上提供更大灵活性的地方结合起来。
示例4-使用FME读取数据和过滤或细化
请注意,在使用where子句(countrycode='ca'),然后使用attributefilter或tester将数据进一步细化为featureClass值为'p'的记录时,会对性能产生影响。在两台变压器之间,AttributeFilter具有更好的性能。
示例5-SQLCreator和SQLExecutor
两者sqlcreator和sqlexecutor可用于查询数据库。在这个书签中,我们根据国家代码和FeatureClass从国家中选择所有属性。尽管两个转换器产生相同的结果,但是您可以使用SQLCreator简化您的工作区,以消除对Creator/Initiator的需要。
当使用已读取的其他数据启动数据库查询时,sqlexecutor非常有用
示例6-带索引和不带索引的读取
使用sqlcreators在countrycode和featureclass上创建复合索引。在功能类型属性中,where子句被设置为使用为更有效的读取而创建的索引。这比示例1中使用的where子句更快地读入特性。
创建国家/地区的索引IDX_COUNTRIES(COUNTRYCODE,FEATURECLASS);
示例7-使用FeatureReader
使用FeatureReader执行空间查询。创建属性或空间索引可以对数据读取的性能产生很大影响。fme的大多数数据库读取器将利用空间索引并执行mbr intersects。您可以使用初始化功能(本例中的shapefile)来执行空间查询,以限制读取时的传入数据。
示例8-使用搜索信封
在导航器中,您可以定义一个搜索信封,以帮助限制正在读取的功能的数量。指定四个坐标和坐标系。还有一个选项可以剪辑以搜索信封。这比读取所有数据然后根据工作区中的坐标进行剪裁要快。
©2019安全亚搏在线软件公司法律