首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

算法分析:Oracle 11g 基于哈希算法唯一数(NDV)估算

1为什么引入新 NDV 算法 字段计数据是 CBO 优化器估算执行计划代价重要依据。而字段计数据可以分为两类: 1. 概要统计数据:如 NDV 字段平均长度 ACL 最大、最小等 2....柱状图数据:也叫直方图(histograms)记录 NDV 和它们出现频率 NDV 也叫做唯一数,是对表字段唯一个数统计,对于第一类数据,实际上可以通过一次扫描表获取所有字段计数据。...而如果优化器采样了这样数据进行执行计划代价估算的话,就很有可能获取不到最优执行计划。 而降低这种不确定性手段就是提高采样比例。...由于获取 NDV 数值需要消除重复(通过 count (distinct col) 方式获取),Oracle 是通过排序方法将已经读取唯一保持在 PGA 当中,以便消除后续重复。...因此,在 11g,自动采样模式下不再进行快速取样,而是直接进行全表扫描获取统计数据。这一新算法称为唯一数估计(Approximate NDV)。

1.2K30

算法分析:Oracle 11g 基于哈希算法唯一数(NDV)估算

1 为什么引入新 NDV 算法 字段计数据是 CBO 优化器估算执行计划代价重要依据。而字段计数据可以分为两类: 1. 概要统计数据:如 NDV 字段平均长度 ACL 最大、最小等 2....柱状图数据:也叫直方图(histograms)记录 NDV 和它们出现频率 NDV 也叫做唯一数,是对表字段唯一个数统计,对于第一类数据,实际上可以通过一次扫描表获取所有字段计数据。...而如果优化器采样了这样数据进行执行计划代价估算的话,就很有可能获取不到最优执行计划。 而降低这种不确定性手段就是提高采样比例。...由于获取 NDV 数值需要消除重复(通过 count (distinct col) 方式获取),Oracle 是通过排序方法将已经读取唯一保持在 PGA 当中,以便消除后续重复。...因此,在 11g,自动采样模式下不再进行快速取样,而是直接进行全表扫描获取统计数据。这一新算法称为唯一数估计(Approximate NDV)。

1.1K70
您找到你想要的搜索结果了吗?
是的
没有找到

Java 对象传入方法内赋值后,为何执行方法后对象未改变呢?

最后方法执行完毕后,lhygTaskMode 依然为 null,这是为什么呢? 问题原因: 因为java只有一种传递参数方式:传递。...在传递,实参被传给形参,方法体内形参任何赋值操作都不会影响到实参。 测试用例: 接下来我们简单写个测试用例来看看具体输出。...: 可以看到方法内部对象赋值后,是有对象地址输出,但是方法执行完毕后,源对象 a 依然是 null。...补充说明: 传递是指在调用函数时将实际参数复制一份传递到函数,这样在函数如果参数进行修改,将不会影响到实际参数。...引用传递是指在调用函数时将实际参数地址直接传递到函数,那么在函数参数所进行修改,将影响到实际参数。 那么,我来给大家总结一下,传递和引用传递之前区别的重点是什么。

1.2K30

9个value_counts()小技巧,提高Pandas 数据分析效率

当谈到数据分析和理解数据结构时,Pandas value_counts() 是最受欢迎函数之一。该函数返回一个包含唯一计数系列。...1、默认参数 2、按升序结果进行排序 3、按字母顺序排列结果 4、结果包含空 5、 以百分比计数显示结果 6、将连续数据分入离散区间 7、分组并调用 value_counts() 8、将结果系列转换为..., dtype: int64 5、以百分比计数显示结果 在进行探索性数据分析时,有时查看唯一百分比计数会更有用。...一个常见用例是按某个列分组,然后获取另一列唯一计数。例如,让我们按“Embarked”列分组并获取不同“Sex”计数。...Pandas DataFrame.value_counts() 返回一个包含 DataFrame 唯一计数系列。

2.4K20

9个value_counts()小技巧,提高Pandas 数据分析效率

默认参数 按升序结果进行排序 按字母顺序排列结果 结果包含空 以百分比计数显示结果 将连续数据分入离散区间 分组并调用 value_counts() 将结果系列转换为 DataFrame 应用于DataFrame...1、默认参数 Pandas value_counts() 函数返回一个包含唯一计数系列。..., dtype: int64 5、以百分比计数显示结果 在进行探索性数据分析时,有时查看唯一百分比计数会更有用。...一个常见用例是按某个列分组,然后获取另一列唯一计数。例如,让我们按“Embarked”列分组并获取不同“Sex”计数。...Pandas DataFrame.value_counts() 返回一个包含 DataFrame 唯一计数系列。

6.5K61

9个value_counts()小技巧,提高Pandas 数据分析效率

默认参数 按升序结果进行排序 按字母顺序排列结果 结果包含空 以百分比计数显示结果 将连续数据分入离散区间 分组并调用 value_counts() 将结果系列转换为 DataFrame 应用于DataFrame...1、默认参数 Pandas value_counts() 函数返回一个包含唯一计数系列。..., dtype: int64 5、以百分比计数显示结果 在进行探索性数据分析时,有时查看唯一百分比计数会更有用。...一个常见用例是按某个列分组,然后获取另一列唯一计数。例如,让我们按“Embarked”列分组并获取不同“Sex”计数。  ...Pandas DataFrame.value_counts() 返回一个包含 DataFrame 唯一计数系列。

2.6K20

Pandas速查手册中文版

s.value_counts(dropna=False):查看Series对象唯一计数 df.apply(pd.Series.value_counts):查看DataFrame对象每一列唯一计数...col1进行分组,并计算col2和col3最大数据透视表 df.groupby(col1).agg(np.mean):返回按列col1分组所有列均值 data.apply(np.mean):...DataFrame每一列应用函数np.mean data.apply(np.max,axis=1):DataFrame每一行应用函数np.max 数据合并 df1.append(df2):将df2...行添加到df1尾部 df.concat([df1, df2],axis=1):将df2列添加到df1尾部 df1.join(df2,on=col1,how='inner'):df1列和df2...执行SQL形式join 数据统计 df.describe():查看数据汇总统计 df.mean():返回所有列均值 df.corr():返回列与列之间相关系数 df.count():返回每一列非空个数

12.1K92

快速介绍Python数据分析库pandas基础知识和代码示例

>>> dtype('float64')# Number of rows and columns df.shape >>> (9, 5) value_counts()函数作用是:获取一系列包含唯一计数...要检查panda DataFrame,我们使用isnull()或notnull()方法方法返回布尔数据名,对于NaN为真。...方法可用于替换DataFrame one = df.replace(100,'A') # Replace all values equal to 1 with 'one' ?...我们可以创建一组类别,并类别应用一个函数。这是一个简单概念,但却是我们经常使用极有价值技术。Groupby概念很重要,因为它能够有效地聚合数据,无论是在性能上还是在代码数量上都非常出色。...计算性别分组所有列平均值 average = df.groupby(‘Sex’).agg(np.mean) ? 统计数据 我们可能熟悉Excel数据透视表,可以轻松地洞察数据。

8.1K20

Pandas速查卡-Python数据科学

关键词和导入 在这个速查卡,我们会用到一下缩写: df 二维表格型数据结构DataFrame s 一维数组Series 您还需要执行以下导入才能开始: import pandas as pd import...df.info() 索引,数据类型和内存信息 df.describe() 数值列汇总统计信息 s.value_counts(dropna=False) 查看唯一计数 df.apply(pd.Series.value_counts...) 所有列唯一计数 选择 df[col] 返回一维数组coldf[[col1, col2]] 作为新数据框返回列 s.iloc[0] 按位置选择 s.loc['index_one'] 按索引选择...,按col1分组(平均值可以用统计部分几乎任何函数替换) df.pivot_table(index=col1,values=[col2,col3],aggfunc=max) 创建一个数据透视表...,按col1分组并计算col2和col3平均值 df.groupby(col1).agg(np.mean) 查找每个唯一col1组所有列平均值 data.apply(np.mean) 在每个列上应用函数

9.2K80

商业数据分析比赛实战,内附项目代码

为了让大家更加熟悉商业数据分析流程,赛事平台和鲸社区还非常贴心提供了多场数据分析专题分享,下面就为大家打来第一场直播培训,主讲老师黄凯根据大家反馈提供培训Notebook,覆盖数据预处理、分组聚合计算...我们只要简单进行一下整理和清洗即可; 再针对我们分析目标,进行分组聚合计算,得出有效结论; 最后我们得出结论进行可视化展示。...AxesSubplot at 0x7fbfe0bf07f0> 本项目第一次使用分组聚合计算, 在这里详细讲解一下 分组: groupby 按年度分组 聚合: count 企业名称计数 请思考为什么用企业名称而不是用其他列来计数...回答:因为其他列包括空,不唯一 计算: cumsum 增长求和 拓展:去 pandas 官网查看 cumsum 方法文档,并查看其他相关方法。...T. plot() # groupby 可以对多列数据进行分组 # unstack 多项索引转换为单例索引 # T 将x轴和y轴转置, 是 transform 简写方法 # 技巧:unstack()

1.5K40

妈妈再也不用担心我忘记pandas操作了

df.describe()# 查看数值型列汇总统计 s.value_counts(dropna=False) # 查看Series对象唯一计数 df.apply(pd.Series.value_counts...) # 查看DataFrame对象每一列唯一计数 数据选取: df[col] # 根据列名,并以Series形式返回列 df[[col1, col2]] # 以DataFrame形式返回多列...') # df1列和df2执行SQL形式join 数据清理: df[df[col] > 0.5] # 选择col列大于0.5df.sort_values(col1) # 按照列col1...) # 返回按列col1分组所有列均值 data.apply(np.mean) # DataFrame每一列应用函数np.mean data.apply(np.max,axis=1) # DataFrame...每一行应用函数np.max 其它操作: 改列名: 方法1 a.columns = ['a','b','c'] 方法2 a.rename(columns={'A':'a', 'B':'b', 'C':

2.2K31

数据科学 IPython 笔记本 7.11 聚合和分组

相反,GroupBy可以(经常)只遍历单次数据来执行此操作,在此过程更新每个组总和,均值,计数,最小或其他聚合。...例如,你可以使用DataFramedescribe()方法,来执行一组聚合,它们描述数据每个分组: planets.groupby('method')['year'].describe().unstack...这只是分发方法一个例子。请注意,它们被应用于每个单独分组,然后在```GroupBy组合并返回结果。...将索引映射到分组字典或序列 另一种方法是提供将索引映射到分组字典: df2 = df.set_index('key') mapping = {'A': 'vowel', 'B': 'consonant...在这里,我建议深入研究这几行代码,并评估各个步骤,来确保你准确了解它们结果作用。 这当然是一个有点复杂例子,但理解这些部分将为你提供,探索自己数据类似方法

3.6K20

从Excel到Python:最常用36个Pandas函数

') 4.查看空 Excel查看空方法是使用“定位条件”在“开始”目录下“查找和选择”目录. ?...5.查看唯一 Excel查看唯一方法是使用“条件格式”唯一进行颜色 标记。 ? Python中使用unique函数查看唯一。...Python处理空方法比较灵活,可以使用 Dropna函数用来删除数据表包含空数据,也可以使用fillna函数对空进行填充。...还可以对多个字段进行判断后对数据进行分组,下面的代码city列等于beijing并且price列大于等于4000数据标记为1。...相当于Excelcountifs函数功能 #筛选后数据按city列进行计数 df_inner.loc[(df_inner['city'] !

11.3K31

Python分析成长之路9

1.pandas数据结构     在pandas,有两个常用数据结构:Series和Dataframe  为大多数应用提供了一个有效、易用基础。     ...View Code 3.使用loc和iloc选择数据       loc方法是针对DataFrame索引名称切片方法,如果传入不是索引名称,那么切片操作无法执行。...:返回一个Series,索引是唯一序列,计数个数,按照个数降序排序 ?...()) #返回每组中位数 14 print(group.cumcount()) #每个分组成员进行标记 15 print(group.size()) #返回每个分组大小 16 print...print(group.cumcount()) #每个分组成员进行标记 print(group.size()) #返回每个分组大小 print(group.min()) #返回每个分组最小

2.1K11

特征构造

优缺点」 优点:新构造有效且合理特征可提高模型预测表现能力。 「缺点:」 (1)新构造特征不一定是模型有正向影响作用,也许模型来说是没有影响甚至是负向影响,拉低模型性能。...=['petal_width'], how='inner') print('>>>新构建计数特征唯一数据:\n', df_newF1['petal_width_count'].unique())...df_newF1.head() >>>新构建计数特征唯一数据: [29 7 5 1 8 12 13 4 3 2 6] 就这样,我们构造出一个新特征 petal_width_count...= pd.merge(df, newF2, on='sepal_length', how='inner') # 由于聚合分组之后有一些样本 std 会存在缺失,所以统一填充为 0 df_newF2...就这样,我们基于两个变量聚合分组之后,使用统计构建出 5 个新特征,下面简单地来 验证演示一下新构造特征有效性如何? df_newF2.corr() ?

1.1K30

python数据分析——数据分类汇总与统计

最后,所有这些函数执行结果会被合并(combine)到最终结果对象。结果对象形式一般取决于数据上所执行操作。下图大致说明了一个简单分组聚合过程。...它实际上还没有进行任何计算,只是含有一些有关分组df[‘key1’]中间数据而已。换句话说,该对象已经有了接下来分组执行运算所需一切信息。...拿上面例子df来说,我们可以根据dtype列进行分组: print(df.dtypes) grouped = df.groupby(df.dtypes,axis = 1) 可以如下打印分组: for...(df['key1']).describe() 关键技术: size跟count区别是: size计数时包含NaN,而count不包含NaN。...aggfunc =聚合方式,聚合函数或函数列表,默认为’mean’,可以是任何groupby有效函数; margins = 总计。

13810

Pandas 功能介绍(二)

“by”参数可以使用字符串,也可以是列表,ascending 参数也可以是单个或者列表 ascending 默认是 True 列每行上 apply 函数 在前一篇增加列部分,根据风速计算人体感觉是否舒适...,为了功能演示,在这里使用 DataFrame apply 方法,他会在指定列每个执行。...详见代码: 均值和标准差 我们通过 describe 方法查看统计信息均值和方差都是按照列统计呢,这里要说,既可以按照列,还可以按照行 均值,行 df.mean(axis=0),列df.mean(...SQL 一样连接,内联,外联,左联,右联 作为我们示例数据,可以唯一标识一行就是 Datatime 列 merged_df = df_1.merge(df_2, how='left', on='...).sum().sum() 分组 Group By 分组在数据统计时候经常使用。

1.6K60

Spark Structured Streaming高级特性

一,事件时间窗口操作 使用Structured Streaming基于事件时间滑动窗口聚合操作是很简单,很像分组聚合。在一个分组聚合操作,聚合唯一保存在用户指定。...这在我们基于窗口分组自然出现 - 结构化流可以长时间维持部分聚合中间状态,以便后期数据可以正确更新旧窗口聚合,如下所示。 ?..., "type", "right_join") // right outer join with a static DF 五,流式去重 您可以使用事件唯一标识符对数据流记录进行重复数据删除。...例如,在许多用例,您必须跟踪事件数据流会话。对于进行此类会话,您将必须将任意类型数据保存为状态,并在每个触发器中使用数据流事件状态执行任意操作。...虽然一些操作在未来Spark版本或许会得到支持,但还有一些其它操作很难在流数据上高效实现。例如,例如,不支持输入流进行排序,因为它需要跟踪流接收到所有数据。因此,从根本上难以有效执行

3.8K70

Python pandas十分钟教程

df.info():提供数据摘要,包括索引数据类型,列数据类型,非空和内存使用情况。 df.describe():提供描述性统计数据。...df['Contour'].isnull().sum():返回'Contour'列计数 df['pH'].notnull().sum():返回“pH”列中非空计数 df['Depth']....unique():返回'Depth'列唯一 df.columns:返回所有列名称 选择数据 列选择:如果只想选择一列,可以使用df['Group']....下面的代码将平方根应用于“Cond”列所有df['Cond'].apply(np.sqrt) 数据分组 有时我们需要将数据分组来更好地观察数据间差异。...Pandas中提供以下几种方式对数据进行分组。 下面的示例按“Contour”列对数据进行分组,并计算“Ca”列记录平均值,总和或计数

9.8K50

pandas技巧4

() # 查看数值型列汇总统计 s.value_counts(dropna=False) # 查看Series对象唯一计数 df.apply(pd.Series.value_counts) #...查看DataFrame对象每一列唯一计数 df.isnull().any() # 查看是否有缺失 df[df[column_name].duplicated()] # 查看column_name...=[col2,col3], aggfunc={col2:max,col3:[ma,min]}) # 创建一个按列col1进行分组,计算col2最大和col3最大、最小数据透视表 df.groupby...) # DataFrame每一列应用函数np.mean data.apply(np.max,axis=1) # DataFrame每一行应用函数np.max df.groupby(col1)...'inner') # df1列和df2执行SQL形式join,默认按照索引来进行合并,如果df1和df2有共同字段时,会报错,可通过设置lsuffix,rsuffix来进行解决,如果需要按照共同列进行合并

3.4K20
领券