问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

相对误差,偶然误差,相对偏差,绝对误差

发布网友 发布时间:2022-04-25 06:36

我来回答

2个回答

懂视网 时间:2022-05-06 17:23

本文将回答:什么是动态抽样?动态抽样有啥作用?以及不同级别的动态抽样的意思? 1、什么是动态采样? 动态抽样从 oracle 9i第2版引入。它使得优化器(CBO)在硬解析期间有能力抽样一个未分析的表 (any table that has been created and loaded but not ye


本文将回答:什么是动态抽样?动态抽样有啥作用?以及不同级别的动态抽样的意思?


1、什么是动态采样?
动态抽样从 oracle 9i第2版引入。它使得优化器(CBO)在硬解析期间有能力抽样一个未分析的表
(any table that has been created and loaded but not yet analyzed)的统计(决定表默认统计),并且可以验证优化器的”猜想“。
因其只在查询硬解析期间为优化器动态生成更好的统计,得名动态采样。


动态采样提供11个设置级别。注意:9i中其默认值为1 到了10g默认值为2


2、动态采样如何工作?
有两种使用方式:
△ 设置OPTIMIZER_DYNAMIC_SAMPLING参数,可以再实例和会话级别设置动态采样。
△ 使用DYNAMIC_SAMPLING hint


来看一下不使用动态采样的日子怎么过的
create table t
as
select owner, object_type
from all_objects
/




select count(*) from t;


COUNT(*)
------------------------
68076

code1: 禁用动态采样观察默认基数


set autotrace traceonly explain
SQL> select /*+ dynamic_sampling(t 0) */ * from t;


Execution Plan
------------------------------
Plan hash value: 1601196873


--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 16010 | 437K| 55 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| T | 16010 | 437K| 55 (0)| 00:00:01 |
--------------------------------------------------------------------------



--注意0级别即为禁用动态采样,环境默认是开启动态采样的


执行计划显示基数:16010远低于上面查询的68076,明显不靠谱。


code2: 更加接近显示的基数
select * from t;


Execution Plan
------------------------------
Plan hash value: 1601196873


--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 77871 | 2129K| 56 (2)| 00:00:01 |
| 1 | TABLE ACCESS FULL| T | 77871 | 2129K| 56 (2)| 00:00:01 |
--------------------------------------------------------------------------


Note
------------------------------------------
- dynamic sampling used for this statement




code3: 被高估的基数
SQL> delete from t;
68076 rows deleted.


SQL> commit;
Commit complete.


SQL> set autotrace traceonly explain
SQL> select /*+ dynamic_sampling(t 0) */ * from t;


Execution Plan
------------------------------
Plan hash value: 1601196873


--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 16010 | 437K| 55 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| T | 16010 | 437K| 55 (0)| 00:00:01 |
--------------------------------------------------------------------------


SQL> select * from t;


Execution Plan
-----------------------------
Plan hash value: 1601196873


------------------------------------------------------------------------【本文来自鸿网互联 (http://www.68idc.cn)】--
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 28 | 55 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| T | 1 | 28 | 5 (0)| 00:00:01 |
--------------------------------------------------------------------------


Note
---------------------------------------
- dynamic sampling used for this statement



3、动态采样何时帮助优化器验证其猜测?
我们知道当使用DBMS_STATS收集了表信息后,优化器会得到以下统计:
1)表,行数,平均行宽等;
2)单独列,高低值,唯一值数量,直方图(可能)等;
3)单独索引,聚集因素,叶子块数量,索引高度等。


但注意这里面缺少了某些关键统计信息,例如表中不同列数据之间的关联!
假设你你有一个全球人口普查表!
一个属性是:出生月份MONTH_BORN_IN,另一个属性是:所属星座ZODIAC_SIGN。收集信息后,你问优化器出生在11月份的人数?
假设12个月人数正常分布,那么优化器很快给出答案是全量数据的1/12!再问一个:星座是双鱼座的人数呢?答案也是1/12!
迄今为止优化器对答如流!!!nice work!
但是第3个问题来了:出生在11月份并且星座是双鱼座的人数是多少呢?
明眼人转下脑子就知道答案是0(双鱼座2月19日-3月20日)!但是我们看优化器的答案:1/12/12!!! 多么异想天开的答案,思维定式!这样就会诞生差的执行计划,
也正是在此时我们的动态采样开始干预:


code4: 创建模拟数据
SQL > create table t
as select decode( mod(rownum,2), 0, 'N', 'Y' ) flag1,
decode( mod(rownum,2), 0, 'Y', 'N' ) flag2, a.*
from all_objects a
/
Table created.


SQL > create index t_idx on t(flag1,flag2);
Index created.


SQL > begin
dbms_stats.gather_table_stats
( user, 'T',
method_opt=>'for all indexed columns size 254' );
end;
/
PL/SQL procedure successfully completed.


SQL> select num_rows, num_rows/2,
num_rows/2/2 from user_tables
where table_name = 'T';


NUM_ROWS NUM_ROWS/2 NUM_ROWS/2/2
-------- ---------- ------------
68076 34038 17019


code5:验证一下上面的说法:
SQL> set autotrace traceonly explain
SQL> select * from t where flag1='N';


Execution Plan
------------------------------
Plan hash value: 1601196873


--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 33479 | 3432K| 292 (1)| 00:00:04 |
|* 1 | TABLE ACCESS FULL| T | 33479 | 3432K| 292 (1)| 00:00:04 |
--------------------------------------------------------------------------


Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("FLAG1"='N')


SQL> select * from t where flag2='N';


Execution Plan
----------------------------
Plan hash value: 1601196873


---------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 34597 | 3547K| 292 (1)| 00:00:04 |
|* 1 | TABLE ACCESS FULL| T | 34597 | 3547K| 292 (1)| 00:00:04 |
---------------------------------------------------------------------------


Predicate Information (identified by operation id):
---------------------------------------------------


1 - filter("FLAG2"='N')


--至此一切正常!so far, so good!


code5: here comes the problem
SQL> select * from t where flag1 = 'N' and flag2 = 'N';


Execution Plan
----------------------------
Plan hash value: 1601196873


--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 17014 | 1744K| 292 (1)| 00:00:04 |
|* 1 | TABLE ACCESS FULL| T | 17014 | 1744K| 292 (1)| 00:00:04 |
--------------------------------------------------------------------------


Predicate Information (identified by operation id):
----------------------------------------------------


1 - filter("FLAG1" = 'N' AND "FLAG2" = 'N')


--验证了我们前面说的优化器此时异想天开了


code7: 动态采样听令,开始介入
SQL> select /*+ dynamic_sampling(t 3) */ * from t where flag1 = 'N' and flag2 = 'N';


Execution Plan
-----------------------------
Plan hash value: 470836197


------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 6 | 630 | 2 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| T | 6 | 630 | 2 (0)| 00:00:01 |
|* 2 | INDEX RANGE SCAN | T_IDX | 6 | | 1 (0)| 00:00:01 |
------------------------------------------------------------------------------------


Predicate Information (identified by operation id):
----------------------------------------------------


2 - access("FLAG1"='N' AND "FLAG2"='N')


code8: 我们打开SQL_TRACE会看到以下语句:
SELECT /* OPT_DYN_SAMP */ /*+ ALL_ROWS IGNORE_WHERE_CLAUSE
NO_PARALLEL(SAMPLESUB) opt_param('parallel_execution_enabled', 'false')
NO_PARALLEL_INDEX(SAMPLESUB) NO_SQL_TUNE */ NVL(SUM(C1),:"SYS_B_00"),
NVL(SUM(C2),:"SYS_B_01"), NVL(SUM(C3),:"SYS_B_02")
FROM
(SELECT /*+ IGNORE_WHERE_CLAUSE NO_PARALLEL("T") FULL("T")
NO_PARALLEL_INDEX("T") */ :"SYS_B_03" AS C1, CASE WHEN "T"."FLAG1"=
:"SYS_B_04" AND "T"."FLAG2"=:"SYS_B_05" THEN :"SYS_B_06" ELSE :"SYS_B_07"
END AS C2, CASE WHEN "T"."FLAG2"=:"SYS_B_08" AND "T"."FLAG1"=:"SYS_B_09"
THEN :"SYS_B_10" ELSE :"SYS_B_11" END AS C3 FROM "T" SAMPLE BLOCK
(:"SYS_B_12" , :"SYS_B_13") SEED (:"SYS_B_14") "T") SAMPLESUB


可以看出来优化器在验证其猜想。。。


4、动态采样级别:
现在列出11个级别,详细请参考:http://docs.oracle.com/cd/B19306_01/server.102/b14211/stats.htm#i43032
1)Level 0: Do not use dynamic sampling.
0级:不使用动态采样。


2)Level 1: Sample all tables that have not been analyzed if the following criteria are met: (1) there is at least 1 unanalyzed table in the query; (2) this unanalyzed table is joined to another table or appears in a subquery or non-mergeable view; (3) this unanalyzed table has no indexes; (4) this unanalyzed table has more blocks than the number of blocks that would be used for dynamic sampling of this table. The number of blocks sampled is the default number of dynamic sampling blocks (32).
1级:满足以下条件则采样所有没被分析的表:
(1)查询中至少有一个未分析表;
(2)这个未分析表被关联另外一个表或者出现在子查询或非merge视图中;
(3)这个未分析表有索引;
(4)这个未分析表有多余动态采样默认的数据块数(默认是32块)。


3)Level 2: Apply dynamic sampling to all unanalyzed tables. The number of blocks sampled is two times the default number of dynamic sampling blocks.
2级:对所有未分析表进行动态采样。采样数据块数量是默认数量的2倍。


4)Level 3: Apply dynamic sampling to all tables that meet Level 2 criteria, plus all tables for which standard selectivity estimation used a guess for some predicate that is a potential dynamic sampling predicate. The number of blocks sampled is the default number of dynamic sampling blocks. For unanalyzed tables, the number of blocks sampled is two times the default number of dynamic sampling blocks.
3级:在2级基础上加上那些使用了猜想选择消除表,采样数据块数量等于默认数量。对于未分析表,采样数量2倍于默认数量。




5)Level 4: Apply dynamic sampling to all tables that meet Level 3 criteria, plus all tables that have single-table predicates that reference 2 or more columns. The number of blocks sampled is the default number of dynamic sampling blocks. For unanalyzed tables, the number of blocks sampled is two times the default number of dynamic sampling blocks.
4级:在3级基础上加上那些有单表谓词关联2个或多个列,采样数据块数量等于默认数量。对于未分析表,采样数量2倍于默认数量。




6)Levels 5, 6, 7, 8, and 9: Apply dynamic sampling to all tables that meet the previous level criteria using 2, 4, 8, 32, or 128 times the default number of dynamic sampling blocks respectively.
5,6,7,8,9级在4级基础上分别使用2,4,8,32,128倍于默认动态采样数据块数量。


7)Level 10: Apply dynamic sampling to all tables that meet the Level 9 criteria using all blocks in the table.
10级:在9级基础上对表中所有数据块进行采样。


5、什么时候适合采用动态采样?


这是一个狡猾的问题,没有一定使用经验,还真不好意思说。
通常:
1)我们使用3和4级进行动态采样。
2)如果我们SQL的解析时间很快但是执行时间巨慢,可以考虑使用动态采样。典型的就是数据仓库系统。
3)OLTP系统中都是一个SQL重复执行,解析和执行都在瞬息之间,所以不建议使用高级别的动态采样。这会给SQL带来硬解析消耗。
这个时候可以考虑SQL Profile,你可以理解为“静态采样”。

热心网友 时间:2022-05-06 14:31

相对误差 relative error
测量的绝对误差与被测量〔约定〕真值之比。乘以100所得的数值,以百分数表示。
一个近似数与它准确数的差的绝对值叫这个近似数的绝对误差。用a表示近似数,A表示它的精确数,那么近似数a的相对误差就是|a-A|/A。

偶然误差(随机误差)
在测量时,即使排除了产生系统误差的因素(实际上不可能也没有必要绝对排除),进行了精心的观测,仍然会存在一定的误差,这类由于偶然的或不确定的因素所造成的每一次测量值的无规则变化(涨落),叫做偶然误差,或随机误差。

平均相对偏差

平均偏差再除以平均值 即为平均相对偏差

系统误差(Systematic error)
系统误差又叫做规律误差。它是在一定的测量条件下,对同一个被测尺寸进行多次重复测量时,误差值的大小和符号(正值或负值)保持不变;或者在条件变化时,按一定规律变化的误差。

绝对误差

英文名称 absolute error
准确值x与其近似值x*之差称为近似数x*的绝对误差。
在数值计算中,记为e(x*)=x*-x,简记为e*。但一般来说,不能准确知道e(x*)的大小,可以通过测量或计算
|e(x*)|=|x*-x|≤ε(x*)
估计其绝对值的上界,那么ε(x*)叫做近似数x*的绝对误差限,简称误差限,简记为ε*。

引用误差 quoted error
测量的绝对误差与仪表的满量程值之比,称为仪表的引用误差’,它常以百分数表示

量化误差的定义
定义1:
量化误差是指量化结果和被量化模拟量的差值,显然量化级数越多,量化的相对误差越小.量化级数指的是将最大值均等的级数,每一个均值的大小称为一个量化单位
来源文章摘要:研究了使用面阵CCD探测器测量激光束空间参数中的问题,采用计算机模拟的方法讨论了CCD的积分范围、动态范围、A/D转换量化精度和光斑最大光强对于光束参数的影响,根据分析结果提出了对CCD器件和测量方法的要求。
定义2:
1量化噪声的理论预测及.l量化噪声的统计性质量化引起的输入信号和输出信号之间的差称为量化误差.量化误差对信号而言是一种噪声也叫量化噪声
来源文章摘要:本文分析了数字广播系统与模拟广播系统中音频信噪比测量方法的区别。介绍了数字广播系统中如何采用信号功率密度频谱函数来求得包括量化噪声在内的信号噪声比的方法,说明测号方法及其实际应用。
定义3:
实际的模拟信号电平与分配给它的数字值之间的差别称为量化误差.它所以被称作量化“噪声”是因为量化误差的效果和由于噪声引起信号跳变到量化值的效果一样
源自: V.90高速Modem的基本原理及其实现 《通信世界》 1998年 戴逸民,胡熠,郭东风
来源文章摘要:本文概述了V�90通信协议使用的技术及其实现方法。内容包括传统的模拟话带Modem的基本原理、56kb/sModem的实现思想、V�90Modem为实现高比特率数据传输而采用的先进技术等。
定义4:
光带中轴跟踪法提取中心线,不可避免的会产生一个像素的误差,称为量化误差.量化误差主要是由于CCD光敏面的分辨力所引起的
来源文章摘要:结合脚型三维轮廓测量仪的研究和设计 ,论述了如何将光切法用于脚型测量以及测量系统的组成 ,提出了采用多台CCDs摄像机从不同角度采样的空间匹配方法。介绍了三维轮廓测量中扫描控制系统的设计 ,从理论上论述了光切面轮廓图像的提取及处理 ,对测量仪中的误差进行了分析和讨论。实验结果表明系统具有良好的实用推广价值
定义5:
DAC输出曲线和理想曲线的偏差是由于DAC的有限位数造成的,这种误差称为量化误差,它将引起量化失真.在频域上,则表现为DAC的输出杂波
定义6:
以有限个离散值近似表示无限多个连续值,一定会产生误差,这种误差称为量化误差,由此造成的失真称为量化失真.量化失真可以用信噪比来度量.对于均匀量化,量化级数越多,量化误差就越小,但编码所用的比特数R越多
定义7:
资料转换过程本身就是模数转换器量测值的基本误差来源之一,它称为量化误差.所有的模数转换器量测值都无法避免此误差

动态误差
dynamic error
控制系统在任意的输入信号作用下达到稳态时的控制误差。通常,动态误差的概念都假定是在线性定常系统(见线性系统、定常系统)的情形下加以讨论的。与稳态误差不同,动态误差是以时间为变量的函数,能提供系统为稳态时控制误差随时间变化的规律。如果控制系统的输入r(t)对t的各阶导数均存在,并且分别用r(t),┑(t),…来表示,则动态误差eS(t)可表示为
式中系数 C0、C1、C2…称为动态误差系数。在控制工程中常称C0为动态位置误差系数,C1为动态速度误差系数,C2为动态加速度误差系数。动态误差系数的数值可根据控制系统的参数来决定。把系统开环传递函数G(s)H(s)表示成如下的形式:
式中K为系统增益,v 为系统中积分环节的个数。此时,动态误差系数 C0、C1、C2的计算公式如下表。
动态误差系数与静态误差系数之间存在如下的对应关系:
对0型系统 静态位置误差系数
对Ⅰ型系统 静态速度误差系数
对Ⅱ型系统 静态加速度误差系数
在控制系统的设计中,有时也把C0、C1和C2作为一种性能指标。

抽样误差

sampling error
抽样方法本身所引起的误差。当由总体中随机地抽取样本时,哪个样本被抽到是随机的,由所抽到的样本得到的样本指标x与总体指标μ之间偏差,称为实际抽样误差。当总体相当大时,可能被抽取的样本非常多,不可能列出所有的实际抽样误差,而用平均抽样误差来表征各样本实际抽样误差的平均水平。
抽样误差是指样本指标值与被推断的总体指标值之差。
主要包括:样本平均数与总体平均数之差;样本成数与总体成数之差。
抽样误差的来源:一类:登记性误差;二类:代表性误差(A、系统性误差;B、偶然性误差)抽样误差特指偶然性误差。
影响抽样误差的因素:抽样单位数的多少,总体中被研究标志的变动程度的大小。

调查误差
指调查所得的统计数据与调查对象实际数量之间的差异

模拟误差的定义
准缺的套利交易意味着卖出或买进股指期货合约的同时,买进或卖出与其相对应的股票组合。如果实际交易的现货股票组合与指数的股票组合不一致,势必倒是两者未来的走势或回报不一致,从而导致一定的误差。这种误差,通常称为模拟误差(Tracking Error)。

储量误差(reserve error)是储量精度的一种度量,指地质勘探阶段探明的矿产储量与矿山开采时证实的矿产数量之间存在的差异,通过探采资料对比和用一定的公式计算确定。按性质和产生的原因,储量误差可分为地质误差、技术误差和计算方法的误差。地质误差由地质推断造成,对储量的精度影响最大;技术误差来源于各种储量计算参数的测定过程;计算方法误差则由储量计算方法选择不当,包括公式本身的误差所引起,但与前两种误差相比,一般对储量计算的结果影响不大。

剩余误差(resial errors)是各次测量值与其算术平均值之差,也称残差。是指实际观察值与回归估计值的差。

中误差是衡量测量精度的指标之一。亦称“标准误差”或“均方根差”。在相同观测条件下的一组真误差平方中数的平方根,真误差是观测值与真值之差。因真误差不易求得,所以通常用最小二乘法求得的观测值改正数(观测值与同观测条件下一组观测值平均数也称数学期望之差)来代替真误差。

滴定误差

分析化学中,由滴定终点和化学计量点不一致而引起的相对误差。 用林邦误差公式计算。
又称终点误差(end point error)。滴定分析中,利用指示剂的变色来确定滴定终点,滴定终点与等当点不一致时所产生的误差,称为终点误差,它表示该滴定方法的系统误差。

静态误差

事实上,静态误差是指当测量器件的测量值(或输入值)不随时间变化时,测量结果(或输出值)会有缓慢的漂移,这种误差程为静态输入误差,或称静态误差。静态误差是指误差的幅值和方向是恒定的,或者是按一定规律缓变的(变化周期大于装置调整周期),即不需要考虑时间因素对误差的影响

误差函数

在数学中,误差函数(也称之为高斯误差函数)是一个非基本函数(即不是初等函数),其在概率论、统计学以及偏微分方程中都有广泛的应用。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
三星S5不支持权限管理吗 三星s5应用程序权限管理运行怎么选 三星s5应用程序权限管理 三星s5授权管理在哪 清华实验学校是公办的吗?? 深圳清华实验学校双语部怎麽样 深圳清华实验学校双语或海外的同学帮下忙~~ 深圳市清华实验学校民办部情况 怎么才能让自己尽快脱单啊? 申请软件著作权的程序,源代码中可以使用CSerialPort类吗,算侵权吗 络合滴定法的终点误差 林邦误差公式中的kt怎么算? 如何正确理解和使用林邦误差公式 刚从奶牛身上挤下来的牛奶保质期是多少? 林邦误差公式 奶牛可以挤几个月的牛奶? 林邦误差公式是什么? 为什么奶牛会挤出来奶 奶牛一天应喂几次料?挤几次奶? 为什么奶牛吃的草,挤的是奶? 奶牛场现挤的奶冷藏能放多少天? 英语翻译 调整语序。这是翻译工具翻译的,就需要按照中文原文调整一下语序。谢谢了 奶牛挤出的奶有凝固的絮状 求英文翻译(要调好语序的) 牛奶都是奶牛挤出来的么? 奶牛挤下来的奶怎么样才能食用??? 关于汉语式的英语,如何调整语序? 奶牛挤奶的地方叫什么?专业术语吧 翻译文言文句子的具体用法:留、补、调、换、删、组 刚从奶牛身上挤出的奶怎么喝? 水质的有哪些? 络合滴定的简单络合物(P87) 水质有什么标准? 络和滴定的误差分析公式及原理 请问0.1mol/lNaAc能否使用HCl准确滴定?为什么? 氧化还原滴定化学计量点电位及终点误差计算 分析化学中检测终点△PM=0.2,条件稳定常数10^-7,ET=0.001怎么求最低浓度 大学分析化学公式有哪些 NaOH溶液内含有碳酸根,标定其浓度时用酚酞作指示剂,而在标定后滴定酸性成分含量时用甲基橙作批示机, 什么是终点误差呀? 根据林邦误差公式,试述影响滴定终点误差的因素有哪些? 有一道分析化学题请各位帮忙解答:有分给滴,要有结果啦,感激 推导是什么意思 强碱滴定强酸时计算终点误差时可以用林邦公式吗? 分析化学的名词解释 酸碱中和滴定误差分析怎么算 如何成为linux嵌入式工程师 成为一名嵌入式Linux开发工程师需要学习哪些知识? 请问,linux嵌入式系统工程师、嵌入式软件工程师、嵌入式开发工程师,这三个有什么区别? 优秀嵌入式linux工程师是怎样炼成的?