ORACLE cbo成本计算
oracle cbo原理

oracle cbo原理
Oracle中的CBO(Cost-Based Optimizer)是一种查询优化器,它负责分析SQL查询语句并确定最有效的执行计划。
CBO的原理涉
及多个方面,包括统计信息、成本估算和执行计划选择。
首先,CBO使用统计信息来了解表和索引的数据分布情况,这
些统计信息包括表的大小、列的基数、索引的选择度等。
这些统计
信息有助于CBO评估不同执行计划的成本,并选择最佳执行计划。
其次,CBO通过成本估算来评估不同执行计划的代价。
成本估
算考虑了多个因素,包括I/O成本、CPU成本和内存成本等。
CBO会
根据这些成本估算来比较不同执行计划的代价,从而选择最佳执行
计划。
最后,CBO根据成本估算选择最佳的执行计划。
它会考虑查询
的复杂性、索引的利用情况、连接顺序等因素,以确定最终的执行
计划。
CBO的目标是选择一个执行计划,使得查询的总成本最小化,从而提高查询的性能。
总的来说,CBO的原理涉及统计信息的收集、成本估算和执行
计划选择。
通过这些步骤,CBO能够为查询选择最有效的执行计划,从而提高数据库查询的性能。
基于CBO的Oracle的成本分析

福
建 电
脑
2 1 年第 2期 01
基 于 C O的 O al B rce的成 本 分 析
钟 明 .杨 邦 荣
(中南 大学信 息科 学与工程 学院 湖 南 长沙 4 0 8 1 03)
【 摘 要 】 本 文 首先介 绍 了 Orc : al 于成本的优 化 器 C O, e基 B 并列举 出了不 同版 本计 算成本 的公 式。并
在这 里 . 他 的数据 都可 以通Oal i 始 , re 8 开 e 引入 了基 于成 本 的优 化器 C O. 只有 C U 的运转 次数 (C U yls 无 法获 取 . 里指 B P #P Cc ) e 这 的是更 改优 化器 执行 计划 时所 需要 消 耗 的 C U资 源 . P 他 的思 路是 让 O al rc e获取 所 有 执 行计 划 的相 关 信息 .
全 表 扫描 :下 面的查 询语 句是 一个 包 含 了复 杂的 级 。执行 的 S L语句 符合 哪 些规 则 . 按照 哪个 规则 Q 就 来制定 相应 的计划 。 O al1G 2开 始 . 动了 自动 过 滤条件 的全 表扫描 语句 : 从 rc 0 R e 启
统 计 收集 . 以提高 基于成 本优 化器 的效率f 可 1 J
记 录与过 滤条件 进行 匹配 :获取 匹配 成功 的记 录上 所 I O表示 物理 I / O请求 . P C U表示 逻 辑 I 求 。 e O请 N. 需要 查询 的 字段 ;因此 , 由这 4个操 作 步骤 , 构成 了 就 t I O表示通 过数据 库访 问远 程数 据库 的逻辑 I / 0请 求 . 全 表扫描 下 的 4个 C U消 耗 的部 分 。 到 以下公式 : P 得 C O会尝试 计算 所有 可 能执行 计 划 的物理 1 选 择最 B 0. # P C C E = n m r f l k ob edf m ds) ( ce CU Y LS u b o st era o i c lst e obc r k y o 小 物理 1 0的计 划 。 由公 式 可知 . rcei c s 仅仅 ra n lc rm ds)(u b ro o st r es ) ( yl o O a l8 的 ot ed oebokf i +n m frw ob po se ( ce t o k e e c d c s 是 执行 S L的 1 Q 0次 数 .该 计算 方式 存 在一 些 缺陷[, poes1rw +n mbro o st epe ia d ( c st rdct 3 ] rcs o )(u e frw b r ct ) c l opeia 1 o d e ye e rw)(ylst poet ou n ) o ) ece rjc clm s + o 具 体 如下 : 取 的时候 . 能 是读 取单 个 数 据块 。 者 读 可 或 是读 取 了多个数据 块 , 两种 读取 方式 的 成本必 然不 同 , 3 构建估 算方 法进行 验证 、 在全 表扫描 中 . rc Oal e高水 位 以下 的所 有数 据块 和 oal8 都 视 同单数 据块 处理 。I r ei c O不 是整个 S L执行 Q 数 据块 上 的所 有记 录都将 需要 被处 理 .公式 可 以简化 中耗 费资 源 的所 有 。还 应 该 考 虑 C U 的使 用 。执 行 P S L读 取时 .数 据块 可 能 已经 在 S A的缓 冲池 里 了 , 为 : Q G # P C C E =( bebok)(ylst r doebokf m i ) C U Y L S t l lc s cce o e n l o ds + a a c r k I 的成 本 要 比从 文件 系 统读 取要 小 .re 8 中没 有 O 0al i e
ORACLE的CBO及表分析

在做NL连接时,emp做为外表,先被访问,由于连 接机制原因,外表的数据访问方式是全表扫描,
emp.deptno上的索引显然是用不上,最多在其上做索引全扫描或索引快速全扫描。
第二部分
[Q] 怎么样分析表或索引?
[A]命令行方式可以采用analyze命令
如Analyze table tablename compute statistics;
Analyze index|cluster indexname estimate statistics;
ANALYZE TABLE tablename COMPUTE STATISTICS
ห้องสมุดไป่ตู้这会极大导 致SQL语句执行极其缓慢。
6、使用CBO 时,SQL语句 "FROM" 子句后面的表的个数不宜太多,因为CBO在选择表连接顺序时,会对"FROM" 子句后面的表进行阶乘运算,
选择最好的一个连接顺序。假 如"FROM" 子句后有6个表,则其可选择的连接顺序就是6*5*4*3*2*1 = 720 种,CBO 选择其中一种,
节省了程序员为了从多个可能的“执行计划”中选择一个最优的方案而花费的调试时间,但在某些场合下 也会存在问题。
较典型的问题有:有时,表明明建有索引,但查询过程显然没有用到相关的索引,导致查询过程耗时漫长,占用资源巨大,
这时就 需要仔细分析执行计划,找出原因。例如,可以看连接顺序是否允许使用相关索引。
但是不 要擅自对数据字典表做分析,否则可能导致死锁,或系统性能严重下降。
Oracle的RBO和CBO详细介绍和优化模式设置方法

Oracle的RBO和CBO详细介绍和优化模式设置⽅法Oracle的优化器有两种优化⽅式,即基于规则的优化⽅式(Rule-Based Optimization,简称为RBO)和基于代价的优化⽅式(Cost-Based Optimization,简称为CBO),在Oracle8及以后的版本,Oracle强列推荐⽤CBO的⽅式RBO⽅式:优化器在分析SQL语句时,所遵循的是Oracle内部预定的⼀些规则。
⽐如我们常见的,当⼀个where⼦句中的⼀列有索引时去⾛索引。
CBO⽅式:它是看语句的代价(Cost),这⾥的代价主要指Cpu和内存。
优化器在判断是否⽤这种⽅式时,主要参照的是表及索引的统计信息。
统计信息给出表的⼤⼩、有少⾏、每⾏的长度等信息。
这些统计信息起初在库内是没有的,是做analyze后才出现的,很多的时侯过期统计信息会令优化器做出⼀个错误的执⾏计划,因些应及时更新这些信息。
注意:⾛索引不⼀定就是优的,⽐如⼀个表只有两⾏数据,⼀次IO就可以完成全表的检索,⽽此时⾛索引时则需要两次IO,这时全表扫描(full table scan)是最好优化模式包括Rule、Choose、First rows、All rows四种⽅式:Rule:基于规则的⽅式。
Choolse:默认的情况下Oracle⽤的便是这种⽅式。
指的是当⼀个表或或索引有统计信息,则⾛CBO的⽅式,如果表或索引没统计信息,表⼜不是特别的⼩,⽽且相应的列有索引时,那么就⾛索引,⾛RBO的⽅式。
First Rows:它与Choose⽅式是类似的,所不同的是当⼀个表有统计信息时,它将是以最快的⽅式返回查询的最先的⼏⾏,从总体上减少了响应时间。
All Rows:也就是我们所说的Cost的⽅式,当⼀个表有统计信息时,它将以最快的⽅式返回表的所有的⾏,从总体上提⾼查询的吞吐量。
没有统计信息则⾛RBO的⽅式。
设定选⽤哪种优化模式:A、Instance级别我们可以通过在initSID.ora⽂件中设定OPTIMIZER_MODE=RULE/CHOOSE/FIRST_ROWS/ALL_ROWS如果没设定OPTIMIZER_MODE参数则默认⽤的是Choose⽅式。
oracle 成本计算

培训体系-学习笔记
一、成本明细
假设物料成本是以箱为单位计算的,它包括物料成本,资源成本和制造费用三部分。
二、物料的单位成本
物料成本的计算是以物料为基准的。
它是根据BOM和BOM里每种基本物料的单位成本计算出来的。
物料的单位成本=每种物料的单位成本乘以消耗数量之和
根据物料清单构成表和物料成本中查出的每种物料的单价后就可以计算出总得消耗物料的单位成本。
注意,半成品也要还原成原材料后再计算成本。
三、资源的单位成本
资源成本的计算是以物料为基准的。
首先计算出生产一箱消耗多少数量的这种资源,然后再乘以这种资源的单价就得出了生产一箱所需要的该类资源的成本,最后将所有资源的成本加总后就是总共消耗的资源。
资源的单位成本=消耗的资源数量*费率
在每种资源中找到对应的单位成本,相乘后就是所耗用的资源的成本。
注,工艺路线是分段的,比如产成品酒查找的工艺路线只是包装工段的工艺路线。
四、制造费用的单位成本
制造费用的计算有两种基准,一种是基于物料,一种是基于资源值。
如果是基于物料,那么每生产一箱消耗的资源数量乘以费率就是它分摊的制造费用。
如果是基于资源单位数(资源值),那么要分摊的制造费用就等于与它关联的资源的单位成本乘以制造费用的费率。
基于物料的制造费用单位成本=消耗的资源数量*费率
基于资源单位数的制造费用单位成本=关联的资源的单位成本*费率
基于物料的制造费用:
以制造费用“B2厂部折旧”为例:
路径:制造设置用户—成本—设置—子要素—制造费用
先定义费率,再关联资源。
Oracle数据库中有关CBO优化的三个问题

Oracle数据库中有关CBO优化的三个问题
一.如何使用CostBased优化器优化查询操作?
Oracle 提供了基于成本(CostBased)和基于规则(RuleBased)两种优化器,简称为CBO和RBO,用于确定查询操作的执行计划。
CostBased优化器将计算各种执行计划的开销,然后选出最低成本的执行计划。
可使用下列方法选择使用CBO:
1.在INIT.ORA文件中设置参数OPTIMIZER_MODE=choose;
2.在Session级设置OPTIMIZER_GOAL=FIRST_ROWS或ALL_ROWS。
3、在查询语句中使用Hint,包括CHOOSE、ALL_ROWS、FIRST_ROWS等。
二.为什么我的执行计划不是的?
CBO是依赖于表的一些统计信息来选择出最低成本的执行计划,当这些统计信息不准确时,产生的计划便可能不是的。
因而应使用ANALYZE命令及时对表进行分析统计。
三.我的查询上周的性能很好,为什么现在查询速度很慢?
这是由于执行计划被改变而造成的,下列因素将会改变一个执行计划:
1、INIT.ORA文件中的参数OPTIMIZER_MODE被改变;
2、表上定义或改变了并行查询度;
3、使用ANALYZE命令重新分析了表,而且使用了ESTIMATE方式,这种方式选择不同的百分比可产生不同的分析结果;
4、DB_FILE_MULTIBLOCK_READ_COUNT参数被修改;
5、SORT_AREA_SIZE参数被修改。
【。
oracle期间成本计算流程

oracle期间成本计算流程英文回答:Oracle Period Costing is a process used to calculate and assign costs to products or services over a specific period of time. It is commonly used in industries such as manufacturing, retail, and services where costs need to be allocated to products or services based on time rather than direct production.The process of Oracle Period Costing involves several steps. Firstly, all costs incurred during the period are collected and recorded in the system. These costs can include direct costs such as materials and labor, as well as indirect costs such as overhead expenses. The costs are then classified into different cost categories, such as materials, labor, and overhead.Once the costs are classified, they are allocated to the appropriate cost objects, which can be products,services, or cost centers. This allocation is based on predetermined allocation methods, such as percentage allocation or activity-based costing. For example, if a company has two products, A and B, and incurred $10,000 in overhead costs during the period, these costs can be allocated to the two products based on their respective usage of overhead resources.After the costs are allocated, they are thenapportioned to the cost objects based on their usage or consumption. This is done using allocation bases, which can be units produced, labor hours, or any other relevant measure. For example, if Product A used 80% of the total labor hours during the period, it will be allocated 80% of the labor costs.Once the costs are apportioned, they are then absorbed by the cost objects. This means that the costs become partof the cost of the products or services. This absorption is done using absorption rates, which are calculated based on the expected usage or consumption of resources. For example, if Product A is expected to use 100 units of materials andthe cost of materials is $10 per unit, the absorption rate for materials will be $10 per unit.Finally, the absorbed costs are recorded in thefinancial statements as part of the cost of goods sold or cost of services rendered. This allows the company to determine the profitability of its products or services and make informed decisions regarding pricing, production, and resource allocation.中文回答:Oracle期间成本计算是一种将成本按照时间分配给产品或服务的过程。
oracle期间成本计算流程

oracle期间成本计算流程英文回答:Oracle Periodic Costing is a process used to calculate the cost of inventory at regular intervals, such as monthly or quarterly. It is a critical component of financial accounting and helps businesses track and manage their costs accurately.The process of Oracle Periodic Costing involves several steps. Firstly, the system collects relevant data such as purchase orders, invoices, and production records. This data is then used to calculate the cost of each inventory item, taking into account factors such as material costs, labor costs, and overhead costs.Once the cost of each inventory item is calculated, it is then allocated to the appropriate cost centers or cost objects. This allows businesses to track the cost of inventory at different levels, such as by product, bydepartment, or by project.Oracle Periodic Costing also includes the calculation of indirect costs, such as depreciation and utilities. These costs are allocated based on predetermined allocation methods, such as the percentage of direct labor or machine hours.The final step in the Oracle Periodic Costing process is the generation of cost reports. These reports provide detailed information on the cost of inventory, allowing businesses to analyze and make informed decisions about their costs. The reports can be customized to meet specific reporting requirements and can be generated on a regular basis or on an ad-hoc basis.中文回答:Oracle期间成本计算是一种定期计算库存成本的流程,例如每月或每季度进行一次。
ORACLEERP成本核算会计信息归纳

ORACLEERP成本核算会计信息归纳按照事务处理的来源类型归纳。
一、采购接收入库和退货:1.接收:借:材料采购 or 采购在途材料(订单价格)贷:应计负债/暂估(订单价格)2.入库:借:原材料(标准成本)贷:材料采购 or 采购在途材料(订单价格)借或贷:材料成本差异_材料订单价格3.退货至接收时产生与上面第2步相反的分录,退货至供货商时产生与上面第1步相反的分录。
二、子库存转移:只有转出子库产生分录借:原材料(自制半成品、库存商品)贷:原材料(自制半成品、库存商品)三、杂项事务处理:1.库存增加:借:原材料(自制半成品、库存商品)贷:账户别名(或自定义账户)2.库存减少:与上面相反的分录四、采购发票匹配:借:应计负债/暂估(订单价格)应交税金_增值税_进项税贷:应付帐款(发票价格)借或贷:材料成本差异_材料发票价格差异五、生产环节:1. 标准工单:①标准工单领料:借:生产成本_直接生产成本_材料贷:原材料(自制半成品、库存商品)②标准工单退料:与上面相反的分录③标准工单资源事务处理(即人工):虽然我司没有在WIP模块进行实际的人工成本核算,但系统会自动核算一笔,基于在定义资源时的吸收账户为“生产成本_直接生产成本_直接人工”,系统产生以下分录:借:生产成本_直接生产成本_直接人工(包含成本中心信息)贷:生产成本_直接生产成本_直接人工(值为零,且只有装配件定义了资源、工艺路线的工单才会产生此分录)因此,在总帐模块处理实际人工和制造费用时,建议:借:生产成本_生产成本差异_人工(实发工资)贷:应付工资借:生产成本_生产成本差异_费用(实际发生的制造费用)贷:制造费用④标准工单完工入库:借:原材料(自制半成品、库存商品)贷:生产成本_直接生产成本_直接材料生产成本_直接生产成本_直接人工生产成本_直接生产成本_直接费用(仅库存商品会有人工和费用科目)⑤如果按照标准成本生产,即发生成本和冲减成本一致,则工单关闭时没有差异;⑥工单关闭时,如果材料的发生成本比冲减成本大,即多耗料:借:生产成本_生产成本差异_材料贷:生产成本_直接生产成本_直接材料如果少耗料则产生相反分录。
oracle cpk 公式

oracle cpk 公式(最新版)目录1.Oracle CPK 公式简介2.Oracle CPK 公式的构成3.Oracle CPK 公式的应用实例4.Oracle CPK 公式的优缺点正文Oracle CPK 公式是一种在 Oracle 数据库中使用的复杂数字公式,可以帮助用户在查询数据时进行复杂的计算。
CPK 公式,全称为 Complex Performance KPI,是由 Oracle 公司开发的一种性能指标计算方法。
它可以通过将多个简单的计算公式组合成一个复杂的公式,从而实现对数据库性能的评估和优化。
Oracle CPK 公式主要由三部分构成:1.指标(Metrics):指标是 CPK 公式中的基本元素,它是数据库性能的度量标准。
常见的指标包括数据库响应时间、事务处理速率、锁等待时间等。
2.函数(Functions):函数是用于处理指标的数学运算符,它可以对指标进行加、减、乘、除等运算。
通过使用不同的函数,用户可以创建出各种复杂的 CPK 公式。
3.条件(Conditions):条件是用于定义 CPK 公式的触发条件,它可以根据数据库的运行状态来决定公式是否生效。
例如,当数据库的响应时间超过一定阈值时,CPK 公式才会生效。
Oracle CPK 公式的应用实例:假设我们要评估数据库的响应时间性能,可以通过以下步骤创建一个CPK 公式:1.选择指标:响应时间(Response Time)2.选择函数:求平均值(Average)3.设置条件:响应时间超过 1 秒(Response Time > 1000)最终得到的 CPK 公式为:Average(Response Time) > 1000这个公式表示,当数据库的平均响应时间超过 1 秒时,公式生效,可以用于评估数据库的性能。
Oracle CPK 公式的优缺点:优点:1.可以对数据库的复杂性能进行评估,提高数据库性能。
2.提供丰富的函数和条件,可以创建出各种复杂的公式。
oracle cpk 公式

oracle cpk 公式摘要:1.Oracle CPK 公式概述2.Oracle CPK 公式的构成3.Oracle CPK 公式的应用实例4.Oracle CPK 公式的优缺点5.总结正文:1.Oracle CPK 公式概述Oracle CPK(Customer Price Key)公式是Oracle E-Business Suite (电子商务套件)中的一种定价策略公式,用于计算客户的销售价格。
CPK 公式可以根据客户的特定信息、产品信息、价格清单和折扣策略等要素,为客户提供个性化的价格方案。
2.Oracle CPK 公式的构成Oracle CPK 公式主要由以下几个部分组成:(1)产品目录:包含产品基本信息,如产品名称、产品编号等。
(2)价格清单:包含产品价格信息,包括标准价格、折扣价格等。
(3)折扣策略:根据客户类型、产品类型等条件,设置不同的折扣策略。
(4)客户信息:包括客户编号、客户名称等,用于确定客户的特定信息。
3.Oracle CPK 公式的应用实例假设一个公司有多种产品,针对不同类型的客户提供不同的折扣策略。
通过使用Oracle CPK 公式,可以根据客户类型、产品类型等信息,计算出个性化的销售价格。
例如,对于高级客户,可以提供更高的折扣,以吸引他们购买更多的产品。
4.Oracle CPK 公式的优缺点优点:(1)提高客户满意度:根据客户需求和类型,提供个性化的价格方案,有助于提高客户满意度。
(2)简化定价流程:通过使用公式管理定价策略,可以减少人工干预,提高定价效率。
(3)灵活调整策略:可以根据市场需求和竞争情况,灵活调整折扣策略,以提高产品竞争力。
缺点:(1)设置复杂:Oracle CPK 公式的设置较为复杂,需要对公式和折扣策略有一定了解。
(2)维护成本高:需要定期维护价格清单、折扣策略等信息,以确保公式的准确性。
5.总结Oracle CPK 公式作为一种个性化定价策略工具,可以帮助企业提高客户满意度、简化定价流程和提高产品竞争力。
oracle成本管理

Oracle
Applications 11i
成本管理
1
内容提要
Unit 1 简介 Unit 2 事务处理 Unit 3 系统设置 Unit 4 操作分析 Unit 5 差异处理 Unit 6 练习
2
Unit1 简 介
3
成本概念和作用
成本是企业在生产经营活动中所发生的费用 生产成本是生产过程中各种资源利用情况的货币
物料管理费用:此帐户通常为资产帐户,它可以跟踪物料管理
费(间接费用)成本。在使用标准成本计算方法时,您可以在 将具有物料管理费的物料发放至任务或计划时按标准记入/借记 此帐户;在完成任务或计划的装配件,结束任务或关闭会计期 时按标准冲减此帐户。而在使用平均成本计算方法时,您可以 在进行发放时按平均成本借记此帐户。
准、会计原则、方法及程 序;
• 管理会计 为企业内部各级管理提供财
务信息的会计事务称为管理 会计;
既能提供历史信息,也能提
Oracle标准成本核算

公司标准成本核算管理制度总则第一条、本公司成本会计事务处理准则及程序,除普通会计事务处理准则、程序、法令及公司章程另有规定外,悉依本准则及程序处理。
第二条、本公司的成本会计事务由会计部成本核算课处理。
第三条、本公司的成本会计核算采用标准成本法核算,在标准成本下,库存价值按物品的标准成本反映。
1、采购订单接收入库时,按采购件的标准成本增加库存价值;2、采购订单价格与标准成本的差异,将进入专门的采购价格差异帐户;3、在进行发票匹配时,发票价格与采购订单价格差异将进入专门的发票价格差异帐户;4、在进行生产任务发料时,按所发物料的标准成本结转库存成本到在制品成本;5、在生产过程中,工人工资和各项制造费用,以资源、资源管理费、物料管理费的形式,按事先确定的费率分摊进入在制品成本;6、完工入库时,按制造件的标准成本结转在制品成本到库存成本。
7、未结转(或是超量结转)的在制品成本,在生产任务单关闭时确认为“制造差异”。
这部分差异实质上反映的是生产成本的量差;8、当发生销售业务时,将按成品的标准成本结转库存成本到销售成本。
第四条、对于采购件,其标准成本通过手工进行定义;对于制造件,其标准成本是根据物料清单和工艺路线通过成本卷积方式,由系统自动计算获得。
第一部分标准成本要素公司将标准成本划分为五大成本要素:物料、资源、外协资源、制造费用、物料管理费;对于采购件而言,一般只包含两项成本要素:物料、物料管理费。
对于自制件而言,前三项被视为直接生产成本,主要是根据其物料清单、工艺路线确定,包含了物料、生产设备折旧、生产线工人工资、外协加工费等;后两项被视为间接生产成本,按一定方式,以一定比例分摊进入成本。
下面将详细描述各成本要素的具体构成。
一、物料采购件成本包含了两个部分:物品采购价(不含增值税)物料成本子要素:按材料性质不同,区分电子料、结构料、包装料、其他。
二、物料管理费物料管理费成本子要素:是指关税、长途运输费、物料供应部及PMC部发生的与材料采购、计划、仓储费等费用。
oracle标准成本与平均成本比较

oracle标准成本与平均成本⽐较
oracle标准成本是⼀种预定义的成本,计算⽅法即预定义的标准数量*标准费率(价格),产⽣的差异归集到相应的差异科⽬。
如,⼈⼯、采购、管理、制造费⽤等。
具体的成本更新按差异⽐率更新,成本分摊在ORACLE当中没有具体的要求和其功能。
另所有的存货都是以标准成本算的。
平均成本⽅法其实就是移动加权平均,每次⼊库就重新计算⼀次成本,计算公式:平均成本=(当前⼊库数量*当前⼊库单位成本+现有库存数量*现有物料单位成本)/(当前⼊库数量+现有库存数量)。
成均成本不存在着成本更新,但可以根据需要分摊成本差异。
辅助成本⽅法PAC,顾名思议就是期间定期成本,它不能单独使⽤,需要配合平均成本或者标准成本使⽤。
其特点是⽉未按⾃然⽉或者会计⽇历进⾏库存值分摊,分摊公式为:期未成本=(现有的库存值/当期⼊库的数量)+当期⼊库的单位成本
可以通过请求,计算期间平均成本/更新定期成本来计算期间平均成本。
成本获取⽅法通过,库存值、采购订单、在制品。
ORACLE流程制造——成本核算

ORACLE 流程制造——成本核算
主要特性
z 支持标准成本核算、 实际成本核算和批次 计算成本
z 实际成本核算类型包 括期间移动平均法, 期间加权平均法、永 续加权平均法以及最 后一次交易的价格
z 利用多种成本类型计 算采购、装运、生产 和库存流程中所有存 货事务处理的成本
z 涵盖当前成本和历史 成本信息的事务处理 分析报告
Oracle、JD Edwards、PeopleSoft 和 Siebel 是 Oracle 公司和/或其子公司的注册商 标。其他名称可能是其各自所有者的商标。
OPM 成本核算软件与以下
产品紧密协同工作: z Oracle 库存管理 z OPM 产品开发管理 z OPM 流程执行管理 z Oracle 装运管理 z Oracle 采购管理 z Oracle 总账管理
z Oracle 子分类账会
计管理
相关服务
Oracle 支持服务部提供
以下服务:
z Oracle 电子商务套
此外,用户还可以使用实际成本将实际批量材料和资源消耗 的影响记入在制品库存。用户也可以将制造期间的费用重新归集 到产品库存,以便对各时期的成本进行评估和报告。
进行详细的成本分析
用户可以进行复杂的分析查询,并生成包括当前和以前采购 的物料成本、已分配资源成本以及批次成本等项目在内的成本事 项分析报告。
益处
OPM 成本核算软件为用户提供准确的成本信息和一些必要 的工具,用以同时利用多个成本类型分析成本数据。利用 OPM 成本核算和 Oracle 子分类账会计管理软件中灵活的会计科目推 导规则,用户可以选择合适的会计科目为所有物料和资源事务处 理创建会计分录。
Oracle 电子商务套件——全面的解决方案
ORACLE系统-预估成本录入&合同疑问解答

ORACLE系统疑问:1、成本:1)系统内“预估成本=未执行合同+未发生合同成本+将发生变更=(已签订合同成本-实际发生成本)+(目标成本-已签订合同成本)+变更预估=目标成本-实际发生成本+变更预估动态成本=实际发生成本+预估成本=目标成本+变更预估”与已签订合同成本好像无关联。
如已签订合同成本超了目标成本,将怎样在系统内调整?答:如果已经超出目标成本,项目目标成本按照要求不能进行修改,系统内将不作任何调整。
在月底查询目标成本与动态成本比较时,就会发现动态成本超标。
是否是在将要发生变更列调整,将合同成本超目标成本部分填入将发生成本列?答:如果合同录入金额已经包含了超出部分,就不需要在将要发生变更列再进行录入了。
如已签订合同成本并未超目标成本,且实际应低于目标成本,是否也应在将要发生变更列调整?答:不需要。
将要发生变更只是录入超出目标成本部分。
实际上将发生成本是否应是变更预估+合同成本与目标成本差值?动态成本=目标成本+变更预估+(合同成本-目标成本)=变更预估+合同成本答:动态成本=实际成本+(目标成本-实际成本)=实际成本+(未执行合同部分+未发生目标成本)2)因变更费用是预估的,如一部分变更费用已确定,将怎样在系统内调整?答:如果一部分费用已经确定发生,系统内不需要调整,最后这部分将以实际发生成本显示。
2、合同:1)合同已结算完,在系统内将怎样调整?是否是将合同金额后方框内的“是否结清”选定为“是”,将合同金额直接改为结算金额,再发运→分配→保存→审批?答:结算完后,将合同金额后方“是否结清”选定为“是”,将合同分配行中金额进行修改,保存。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
tes=103)
2 1 INDEX (RANGE SCAN) OF 'IDX_TEST1_N1' (NON-UNIQUE) (Cost=
SQL> declare
2 i number;
3 begin
4 i:=1;
5 for j in 1..5000 loop
6 i:=mod(j,250);
7 insert into test2 values(i,'test');
8 insert into test3 values(i);
1 0 TABLE ACCESS (FULL) OF 'TEST2' (Cost=9 Card=20 Bytes=2060)
SQL> select /*+ index (test2 IDX_TEST2_N1)*/ * from test2 where n1 = 100;
Execution Plan
TEST1 5000 1 1 76
TEST2 5000 1 20 5000
表已创建。
SQL> create table test3(n1 number(10));
表已创建。
begin
for i in 1..5000 loop
insert into test1 values(i,'test');
end loop;
end;
/
PL/SQL 过程已成功完成。
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=1 Card=20 Bytes=60)
1 0 INDEX (RANGE SCAN) OF 'IDX_TEST2_N1' (NON-UNIQUE) (Cost=1
select /*+ rule */ * from test2 where n1 = 100;
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=HINT: RULE
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=9 Card=20 Bytes=2060
)
Bytes=2060)
2 1 INDEX (RANGE SCAN) OF 'IDX_TEST2_N1' (NON-UNIQUE) (Cost=
1 Card=20)
如果通过索引访问:
cost计算:从t2的索引统计信息中可以看出,idx_test2_n1的l_blocks为1,d_blocks为20,cost=1+20=21,其中索引叶块物理读取cost为1,数据块物理读取cost为20
当然,在oracle 920 开始,对于cluster_factor 比较接近表块数量的根据索引的大范围查询做了特别的处理,不再是读一个索引记录去搜索一个表记录了,而是成批处理(通过索引块一批rowid一次去表块中获得一批记录),这样就大大节约了读的成本( consistent gets)。
SQL> set autotrace trace exp
SQL> conn test/test
已连接。
SQL> @D:\oracle\ora92\rdbms\admin\utlxplan.sql
表已创建。
SQL> create table test1(n1 number(10),c1 char(100));
表已创建。
SQL> create table test2(n1 number(10),c1 char(100));
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=1 Card=20 Bytes=60)
1 0 INDEX (RANGE SCAN) OF 'IDX_TEST3_N1' (NON-UNIQUE) (Cost=1
TEST3 12 5000
SQL> select table_name,num_rows,avg_leaf_blocks_per_key l_blocks,
2 avg_data_blocks_per_key d_blocks,
3 clustering_factor cl_fac
4 from user_indexes;
TABLE_NAME NUM_ROWS L_BLOCKS D_BLOCKS CL_FAC
------------------------------ ---------- ---------- ---------- ----------
1 0 TABLE ACCESS (BY INDEX ROWID) OF 'TEST2'
2 1 INDEX (RANGE SCAN) OF 'IDX_TEST2_N1' (NON-UNIQUE)
SQL> select * from test3 where n1 = 100;
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=21 Card=20 Bytes=206
0)
1 0 TABLE ACCESS (BY INDEX ROWID) OF 'TEST2' (Cost=21 Card=20
SQL> select * from test1 where n1 = 100;
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=1 Bytes=103)
1 Card=1)
cost计算:从t1的索引统计信息中得知,idx_test1_n1的l_blocks,d_blocks均为1,cost=1+1=2,索引叶块物理读取cost为1,数据块物理读取cost为1
SQL> select * from test2 where n1 = 100;
9 end loop;
10 end;
11 /
PL/SQL 过程已成功完成。
SQL> commit;
提交完成。
SQL> create index idx_test1_n1 on test1(n1);
索引已创建。
SQL> create index idx_test2_n1 on test2(n1);
这样计算下来,clustering_factor 应该是介于 表 block数量 和 表记录数之间 的一个值,若 clustering_factor 接近 表block数量,则说明表中数据具有比较好的跟索引字段一样排序顺序的存储,通过索引进行 range scan 的代价比较小(需要读取的表块可能比较少),若clustering_factor 接近 row数量,则说明表中数据和索引字段排序顺序差异很大,杂乱无张。则通过索引进行 range scan 的代价比较大(需要读取的表块可能更多)。
clustering_factor 是表征表中数据的存储顺序和某索引字段顺序的符合程度。
oracle 按照索引块中存储的rowid 来识别相临的索引中记录 在表block中是否为相同块,如果索引中存在记录 rowid a,b,c,d……,若b 和 a 是同一个block,则比较 c 和 b,若这时不是同一个block,则clustering_factor + 1 ,然后比较 d 和 c,若还不是同一个 block,则clustering_factor + 1 ……
TEST3 5000 1 8 2000
各列的粗略解释每个索引值的平均叶块数目。
avg_data_blocks_per_key d_blocks:每个索引值的平均数据块数目。
------------------------------ ---------- ----------
PLAN_TABLE
TEST1 76 5000
TEST2 76 5000
Card=20 Bytes=60)
cost计算:从t3的索引统计信息,idx_test2_n1的l_blocks为1,d_blocks为15,但因为无需访问表,故cost=1,索引叶块物理读取cost为1
如果单纯是选择索引列的话,不需要访问表数据块.如下例所示:
Execution Plan
索引已创建。
SQL> create index idx_test3_n1 on test3(n1);