SPL性能提升-单键值查找

2024-01-06 00:30
文章标签 性能 查找 提升 spl 单键

本文主要是介绍SPL性能提升-单键值查找,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一.介绍

集算器是一款程序化数据运算工具,它能够执行各类数据分析与结构化计算,也可以自由访问数据库,完成在线数据分析。
在这里插入图片描述
支持各种数据源混合查询,离散与集合的充分结合,超强有序计算,提倡分步计算

官网:http://www.scudata.com.cn/

二.准备

1.下载学习资源:http://www.raqsoft.com.cn/wx/course-performance-optimizing.html

2.安装完毕打开集算器,设置seek为主目录
在这里插入图片描述
3.切换到主目录

在这里插入图片描述

4.执行脚本
在这里插入图片描述
1、“主目录\dfx\orders.dfx”,生成订单集文件"主目录\data\btx\orders.btx"。
2、“主目录\dfx\residents.dfx”,生成居民集文件"主目录\data\btx\residents.btx"
3、“主目录\dfx\fulltext.dfx”,生成全文检索组文件"主目录\data\ctx\fulltext.ctx"“。
4、“主目录\dfx\keyvalues.dfx”,生成键值组文件"主目录\data\ctx\col.ctx”"。

三.内存-单键值查找

一.准备数据

执行p1.1.dfx,生成一百万数据量的客户序表customer,并随机取出1000个id、name
在这里插入图片描述

二.内存-二分法

在这里插入图片描述
1.打开p1.2.dfx,用顺序查找,记录执行时间
在这里插入图片描述
2.打开p1.2.dfx,用二分法改写,记录执行时间
在这里插入图片描述
注意:二分法找name是不行的,二分法查找的必须是有序的集合

=customer.select@b(name= ="Luke")

三.序号定位

在这里插入图片描述
在这里插入图片描述
1.打开p1.3.dfx,用序号定位法改写,比较执行时间
在这里插入图片描述
注意:基于无序集合理论的关系数据库,没有提供序号定位的手段,即使可以用序号定位时也只能用主键查找

四.哈希索引

在这里插入图片描述
索引越长,产生哈希冲突的概率越小,查找速度越快,但占用内存越大

索引长度缺省:原序列长度和2000万的较小值。当users表长度为100万的时候,索引长度缺省就是100万,哈希值重复的情况就很少了。

1.打开p1.4.dfx,用哈希索引改写
在这里插入图片描述
我们的数据是100w,所以索引缺省值是100w,冲突率小,查询快

2.将A2的index()改为index(10000),强行修改索引缺省值
在这里插入图片描述
可以看到缺省值小了,哈希冲突概率增大,查询效率变低

四.位置索引

在这里插入图片描述
1.打开p1.5.dfx-文件,观察遍历查找的写法,记录执行时间
在这里插入图片描述
2.改写为位置索引法查找
在这里插入图片描述

五.多层序号查找

在这里插入图片描述
在这里插入图片描述
1.打开p1.6.dfx,居民表residents取出十万条数据,idcards随机取出100个idcard身份证号
在这里插入图片描述
2.身份证号前十四位转换为排号键代码如下,补全剩下的三位转换代码
在这里插入图片描述

六.多层序号与限制长度哈希索引对比

1.打开p1.8.dfx,利用长度1000的哈希索引查找10000次
在这里插入图片描述
2.改写p1.8.dfx,将residents主键改为idcardk,哈希索引改为排号键索引
在这里插入图片描述

四.外存-单键值查找

一.外存-二分法

在这里插入图片描述
在这里插入图片描述
1.打开p1.9.dfx,用遍历法查找oid==8123456,记录执行时间
在这里插入图片描述
2.利用二分法(外存)改写p1.9.dfx,比较性能
在这里插入图片描述

二.外存-排序索引

在这里插入图片描述
在这里插入图片描述
1.打开p1.10.dfx,无索引查找1000个随机的订单编号,记录执行时间
在这里插入图片描述
2.改写p1.10.dfx,使用排序索引查找,比较性能,查看产生的索引文件
在这里插入图片描述
在seek\data\ctx目录中发现订单索引文件
在这里插入图片描述

三.外存-哈希索引

在这里插入图片描述
1.打开p1.11.dfx,用遍历法查找1000个随机的订单编号,记录执行时间
在这里插入图片描述
2.改写p1.11.dfx,使用哈希索引查找,比较性能
在这里插入图片描述
在这里插入图片描述
保证生成的索引文件名称不能重复,平均索引长度为1最合适,冲突最小

这篇关于SPL性能提升-单键值查找的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/574640

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

黑神话,XSKY 星飞全闪单卷性能突破310万

当下,云计算仍然是企业主要的基础架构,随着关键业务的逐步虚拟化和云化,对于块存储的性能要求也日益提高。企业对于低延迟、高稳定性的存储解决方案的需求日益迫切。为了满足这些日益增长的 IO 密集型应用场景,众多云服务提供商正在不断推陈出新,推出具有更低时延和更高 IOPS 性能的云硬盘产品。 8 月 22 日 2024 DTCC 大会上(第十五届中国数据库技术大会),XSKY星辰天合正式公布了基于星

从状态管理到性能优化:全面解析 Android Compose

文章目录 引言一、Android Compose基本概念1.1 什么是Android Compose?1.2 Compose的优势1.3 如何在项目中使用Compose 二、Compose中的状态管理2.1 状态管理的重要性2.2 Compose中的状态和数据流2.3 使用State和MutableState处理状态2.4 通过ViewModel进行状态管理 三、Compose中的列表和滚动

java学习,进阶,提升

http://how2j.cn/k/hutool/hutool-brief/1930.html?p=73689

JAVA用最简单的方法来构建一个高可用的服务端,提升系统可用性

一、什么是提升系统的高可用性 JAVA服务端,顾名思义就是23体验网为用户提供服务的。停工时间,就是不能向用户提供服务的时间。高可用,就是系统具有高度可用性,尽量减少停工时间。如何用最简单的方法来搭建一个高效率可用的服务端JAVA呢? 停工的原因一般有: 服务器故障。例如服务器宕机,服务器网络出现问题,机房或者机架出现问题等;访问量急剧上升,导致服务器压力过大导致访问量急剧上升的原因;时间和

PR曲线——一个更敏感的性能评估工具

在不均衡数据集的情况下,精确率-召回率(Precision-Recall, PR)曲线是一种非常有用的工具,因为它提供了比传统的ROC曲线更准确的性能评估。以下是PR曲线在不均衡数据情况下的一些作用: 关注少数类:在不均衡数据集中,少数类的样本数量远少于多数类。PR曲线通过关注少数类(通常是正类)的性能来弥补这一点,因为它直接评估模型在识别正类方面的能力。 精确率与召回率的平衡:精确率(Pr

Verybot之OpenCV应用二:霍夫变换查找圆

其实我是想通过这个程序来测试一下,OpenCV在Verybot上跑得怎么样,霍夫变换的原理就不多说了,下面是程序: #include "cv.h"#include "highgui.h"#include "stdio.h"int main(int argc, char** argv){cvNamedWindow("vedio",0);CvCapture* capture;i

SQL2005 性能监视器计数器错误解决方法

【系统环境】 windows 2003 +sql2005 【问题状况】 用户在不正当删除SQL2005后会造成SQL2005 性能监视器计数器错误,如下图 【解决办法】 1、在 “开始” --> “运行”中输入 regedit,开启注册表编辑器,定位到 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVer