oracle - 将大数据从 Oracle 加载到表格模型的最佳实践
问题描述
我们创建了一些直接从 Oracle 获取数据的新 SSAS 表格模型。但经过一些测试,我们发现使用真实的客户数据(几百万行数据),处理时间接近 4 小时。我们的目标是将它们保持在大约 15 分钟以下(由于现有系统性能)。我们从 Oracle 表中获取数据,因此查询性能不是瓶颈。
是否有任何通用设计指南/最佳实践来处理这种情况?
解决方案
检查您的应用程序端数组获取大小,因为您可能会遇到网络延迟。** Array fetch size 注意:根据 Oracle 文档,Fetch Buffer Size 是一个应用程序端内存设置,会影响单个 fetch 返回的行数。通常,您可以平衡单次提取(也称为数组提取大小)返回的行数和需要提取的行数。
与需要返回的行数相比,较小的数组提取大小将表现为处理每次提取所需的增加的网络和客户端处理的延迟(即每次网络往返的高成本 [SQL*Net 协议])。
如果是这种情况,在 Oracle 端,您可能会看到“来自客户端的 SQL*Net 消息”的等待时间非常长。[此等待事件由会话在等待来自客户端的消息到达时发布。通常,这意味着会话只是处于空闲状态,但是,在客户端/服务器环境中,这也可能意味着客户端进程运行缓慢或存在网络延迟延迟。此等待事件的高等待时间不会降低数据库性能。]
正如我喜欢说的:“SQL*Net 是一个健谈的协议”;因此,即使 Oracle 可以完成对查询的处理,过多的网络往返也会导致客户端的响应时间变慢。如果将数据放入应用程序所用的时间比数据库运行 SQL 所用的时间长得多,那么人们应该预料到,较小的数组获取大小可能会导致速度变慢;在这种情况下,应用程序端处理时间也可能是导致缓慢的一个因素[您可以查看应用程序特定的方法来解决/调整应用程序端处理]。
数组获取大小不是 Oracle 帐户的属性,也不是 Oracle 端会话设置。数组获取大小只能在客户端设置;客户端将使用的数组获取大小没有 DB 设置。每个客户端应用程序都有不同的机制来指定数组获取大小:
- 信息技术:?? 配置。文件参数???在连接或结果集级别设置?Cognos http://www-01.ibm.com/support/docview.wss?uid=swg21981559
- SQL*Plus:设置数组大小 n
- Java/JDBC:setFetchSize(int rows) /* Statement、PreparedStatement、CallableStatement 和 ResultSet 对象中的方法 */ 属性对象 put 方法“defaultRowPrefetch” http://download.oracle.com/otn_hosted_doc/jdeveloper/905/jdbc-javadoc /oracle/jdbc/OracleDriver.html Oracle JDBC DefaultRowPrefetch 的另一个链接 http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-faq-090281.html
- .Net Oracle .Net 开发人员指南 FetchSize 属性表示 ODP.NET 分配用于缓存从数据库往返获取的数据的总内存大小(以字节为单位)。根据具体情况,可以在 OracleCommand、OracleDataReader 或 OracleRefCursor 对象上设置 FetchSize 属性。它控制使用 OracleDataAdapter 填充 DataSet 或 DataTable 的提取大小。
- ODBC 驱动程序:?? 类似于:SetRowsetSize
推荐阅读
- angular - 我的动态数据不使用角度在 fb 中共享
- ruby-on-rails - 在rails中重命名asset_url的路径
- css - 当我要选择的变量不包含在我要设置样式的元素的父级中时,找不到正确的选择器子句
- ruby - Iterating over different hashes with one method in Ruby
- google-apps-script - How to change the Owner of a google sheet automatically when a copy of the document is made
- java - How to check if a user input is a string or not
- android - 使用 Gson 解析 Json 字符串给了我错误
- c# - How assign EF table data to List
- vue.js - 当我将 vuetify.js 导入到我的 Vue 项目时,文本选择颜色变为黑色
- abcpdf - 尝试创建 pdftable 时出现 ABCPDF 错误