-
调优介绍 Hyper Tuner是一款鲲鹏性能调优工具,本实践中使用Tuning Kit工具对sqlite3所在系统执行系统性能全景分析,找到性能瓶颈点,并根据分析结果进行优化修改,从而实现sqlite3多数据插入性能增强。组网环境说明:本实践以TaiShan 200服务器(型号2280)+ Ubuntu18.04.1组网举例,TuningKit在其他鲲鹏平台和操作系统上的操作类似。表格1 sqlite3环境项目说明服务器TaiShan 200 服务器(型号2280)CPUKunpeng 920 4826OSUbuntu 18.04.1应用Sqlite3 python3调优工具Hyper Tuner 2.2.T3 前提条件1. 服务器和操作系统正常运行。2. PC端已经安装SSH远程登录工具。3. 目标环境上HyperTuner工具已经安装完成,并正常运行。调优思路1. 执行调优之前的代码,用HyperTuner工具对目标环境的空载系统进行全局的系统性能分析。2. 对全景性能分析中,有异常的指标进一步分析,并根据优化建议进行优化修改。3. 对优化后的代码再次进行全景性能分析,验证调优后的效果。操作步骤系统全景分析python3执行附件中的demo.py,此时插入2000000条数据,每次执行的时候就会执行conmmit操作(执行指令 python3 demo.py)数据插入很慢,20秒钟只能插入几百条数据进行全景分析操作性能瓶颈分析在性能全景分析的结果中,查看CPU利用率中的%iowait以及存储IO中的%util,发现CPU等待存储I/O操作导致空闲状态的时间占CPU总时间的百分比 很高,在I/O请求发送到设备期间所消耗的CPU时间百分比也很高,说明程序在执行磁盘操作的时间很长,查看代码,发现是每一条插入语句都得和磁盘交互一次。性能瓶颈优化将代码进行修改,附件中的demo1.py,采用多插入的代码,执行结果如下:,20秒可以执行几十万的数据,插入很快(操作指令:python3 demo1.py)进行全景分析操作调优后结果查看CPU利用率中的%iowait以及存储IO中的%util,发现有明显下降,数据插入也变快了很多。本实践中,通过系统全景分析的采集,一步步找到代码中对于的优化点,主要是cpu等待磁盘操作的时候太长,导致性能较低,通过优化,提高性能总结20秒数据%util%iowaitSqlite单插入400+条数据98.80%52.32%Sqlite多插入(1000条每次)16W+条数据74.00%40.37%
-
一、引言 移动开发的,通常会使用一些小型的数据库进行数据管理,Sqllite 是一款十分小巧的便捷的数据库,在ios中 的开发原生框架也有支持数据库存在的意义就在于其对数据的整合和管理,所以数据库的核心操作无非是对数据进行增,删,改,查得操作。1.建立数据表语句 一个数据库文件中可以由一些表组成,通过下面的语句在数据库文件中创建一张表:create table class(num integer PRIMARY KEY,name text NOT NULL DEFAULT "1班",count integer CHECK(count>10))上面的语句代码可以简化成如下的格式:create table 表名(参数名1 类型 修饰条件,参数名2,类型 修饰参数,···)sqlite中支持如下的类型: smallint 短整型 integer 整型 real 实数型 float 单精度浮点 double 双精度浮点 currency 长整型 varchar 字符型 text 字符串 binary 二进制数据 blob 二进制大对象 boolean 布尔类型 date 日期类型 time 时间类型 timestamp 时间戳类型 关于修饰条件,常用的有如下几种: PRIMARY KEY:将本参数这个为主键,主键的值必须唯一,可以作为数据的索引,例如编号。 NOT NULL :标记本参数为非空属性。 UNIQUE:标记本参数的键值唯一,类似主键。 DEFAULT:设置本参数的默认值 CHECK:参数检查条件,例如上面代码,写入数据是count必须大于时才有效。2.添加数据使用下面的语句来进行数据行的添加操作:insert into class(num,name,count) values(2,"三年2班",58)简化成如下格式:insert into 表名(键1,键2,···) values(值1,值2,···)使用下面的语句进行数据列的添加,即添加一个新的键:alter table class add new text alter table 表名 add 键名 键类型3.修改数据使用如下语句来进行改操作: update class set num=3,name="新的班级" where num=1 update 表名 set 键1=值1,键2=值2 where 条件4.删除数据 delete from class where num=1 delete from 表名 where 条件上面代码删除num为1的一条数据。删除一张表适用下面的语句:drop table class drop table 表名5.查询操作查询操作是数据库的核心功能,sqlite的许多查询命令可以快捷的完成复杂的查询功能。查询表中某些键值: select num from class select 键名,键名··· from 表名查询全部键值数据: select * from class select * from 表名*是一个全通配符,代表不限个数任意字符查询排序: select * from class order by count asc select 键名,键名,··· from 表名 order by 键名 排序方式order by 后面写要进行排序的键名,排序方式有 asc升序 desc降序查找数据条数与查找位置限制: select * from class limit 2 offset 0 select 键名 from 表名 limit 最大条数 offset 查询起始位置条件查询: select * from class where num>2 select 键名 from 表名 where 条件查询数据条数: select count(*) from class select count(键名) from 表名去重查询: select distinct num from class select distinct 键名 from 表名三、MesaSQLite的简单使用方法 MesaSQLite是一款可视化的SQLite数据库编辑软件,使用十分方便1.创建数据库文件打开MesaSQLite软件,在导航栏中选择File,选择弹出菜单中的New DataBase创建一个新的数据库文件,也可以选择Open Database打开一个数据库。注意:默认创建的数据库文件为rdb格式,手动改成db格式即可。2.创建表MesaSQLite有两种方式对数据库进行操作,一种是通过sql语句,一种是通过可视化的界面。在SQL Query工具窗口中,可以通过SQL语句对数据库进行操作,如下图:3.查询操作对于数据的查询操作,同样可以通过SQL Query工具通过语句进行查询或者在Content窗口中填写查询条件进行查询,如下:
-
这几天在华为云课堂学习移动开发课程,看到这个SQLite数据库回顾一下:https://developer.huaweicloud.com/activity/full-stack/app-developer.html 附上链接显示表结构:sqlite> .schema [table]获取所有表和视图:sqlite > .tables获取指定表的索引列表:sqlite > .indices [table ]导出数据库到 SQL 文件: sqlite > .output [filename ] sqlite > .dump sqlite > .output stdout从 SQL 文件导入数据库:sqlite > .read [filename ]格式化输出数据到 CSV 格式: sqlite >.output [filename.csv ] sqlite >.separator , sqlite > select * from test; sqlite >.output stdout从 CSV 文件导入数据到表中: sqlite >create table newtable ( id integer primary key, value text ); sqlite >.import [filename.csv ] newtable备份数据库: /* usage: sqlite3 [database] .dump > [filename] */ sqlite3 mytable.db .dump > backup.sql恢复数据库: /* usage: sqlite3 [database ] < [filename ] */ sqlite3 mytable.db < backup.sql
-
npm镜像麻烦添加下sqlite3的二进制node_sqlite3_binary_host_mirror=http://npm.taobao.org/mirrors/node_sqlite3_binary_host_mirror=华为云地址npm install 涉及到sqlite3二进制的时候, 会从amazonaws下载, 被墙了, 下载不动.
-
mindstudio解决方案一个是下面这个链接提到的https://bbs.huaweicloud.com/forum/thread-70313-1-1.html如果在保证各个依赖项都正确安装的情况下,可以注释掉/home/xxxx/Mindstudio-ubuntu/tools/check_env_new.sh的第441行check_py_lib注释掉之后可以绕过依赖检查进入mindstudio,打开的时间还能比原来快一点点atc的报错我遇到的情况是环境变量没有配置export PATH=/usr/local/python3.7.5/bin:$PATH不配置这一行的话执行atc可能会使用系统的python3.6导致了报错
-
【系统】Ubuntu 64位 16.04.3【操作步骤&问题现象】1、安装教程视频完成了安装前准备2、将python3.5升级成了python3.7.52.1:sudo cp /usr/local/python3.7.5/lib/libpython3.7m.so.1.0 /usr/lib sudo ln -s /usr/local/python3.7.5/bin/python3 /usr/bin/python3.7 sudo ln -s /usr/local/python3.7.5/bin/pip3 /usr/bin/pip3.7 sudo ln -s /usr/local/python3.7.5/bin/python3 /usr/bin/python3.7.5 sudo ln -s /usr/local/python3.7.5/bin/pip3 /usr/bin/pip3.7.52.2: 在 ~/.bashrc 最后加上了这些export install_path=${HOME}/Ascend/ascend-toolkit/20.0.RC1 export PATH=/usr/local/python3.7.5/bin:${install_path}/atc/ccec_compiler/bin:${install_path}/atc/bin:$PATH export PYTHONPATH=${install_path}/atc/python/site-packages/te:${install_path}/atc/python/site-packages/topi:$PYTHONPATH export LD_LIBRARY_PATH=${install_path}/atc/lib64:$LD_LIBRARY_PATH export ASCEND_OPP_PATH=${install_path}/opp3、已安装ascend-toolkitwget -O $HOME/Ascend-Toolkit-20.0.RC1-arm64-linux_gcc7.3.0.run "https://mindstudio--ddk.obs.cn-north-1.myhuaweicloud.com/C73B050/Ascend-Toolkit-20.0.RC1-arm64-linux_gcc7.3.0.run" --no-check-certificate wget -O $HOME/Ascend-Toolkit-20.0.RC1-x86_64-linux_gcc7.3.0.run "https://mindstudio--ddk.obs.cn-north-1.myhuaweicloud.com/C73B050/Ascend-Toolkit-20.0.RC1-x86_64-linux_gcc7.3.0.run" --no-check-certificate4、进入bin中run那个shell文件是遇到了报错:lack of _sqlite3 module 但是python中是有这个sqlite3的,terminal-->python3-->import sqlite3 没有报错【截图信息】
-
1 简介SQLite JDBC 是一个用于使用Java 访问和创建SQLite数据库文件的库。 2 编译环境准备2.1 安装Openjdk下载并安装到指定目录(如/opt/tools/installed):wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u191-b12/OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gztar -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gzmv jdk8u191-b12 /opt/tools/installed/配置java环境变量,在/etc/profile文件末尾处增加下面的代码:JAVA_HOME=/opt/tools/installed/jdk8u191-b12PATH=$JAVA_HOME/bin:$PATHexport JAVA_HOME PATH运行下面命令,使修改的环境变量生效:source /etc/profile2.2 安装Maven下载并安装到指定目录(如/opt/tools/installed):wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gztar -zxf apache-maven-3.5.4-bin.tar.gzmv apache-maven-3.5.4 /opt/tools/installed/修改maven环境变量,在/etc/profile文件末尾增加下面高亮代码:JAVA_HOME=/opt/tools/installed/jdk8u191-b12MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4PATH=$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATHexport MAVEN_HOME JAVA_HOME PATH运行下面的命令,是修改的环境变量生效:source /etc/profile2.3 安装Gcc等依赖项挂载OS镜像:mount YOUR_OS.iso /media -o loop修改/etc/yum.repos.d/Base.repo文件,配置yum本地源:[Local]name=CentOS-7.4 Localbaseurl=file:///media/enabled=1gpgcheck=0运行下面的命令,使yum源配置生效:yum clean allyum makecacheyum安装GCC等相关依赖:yum install git gcc gcc-c++ make cmake libtool autoconf automake -y2.4 解决-fsigned-char问题1.使用command -v gcc命令寻找gcc所在路径(一般位于/usr/bin/gcc)2.更改gcc的名字(比如改成gcc-impl)3.在gcc所在目录执行vim gcc,并填入如下内容保存:#! /bin/sh/usr/bin/gcc-impl -fsigned-char “$@”4.执行chmod +x gcc给脚本添加执行权限5.使用与1-4步相似的方式给g++创建同名字的脚本文件3 组件编译安装下载sqlite-jdbc-3.8.11.2源码,并解压wget https://github.com/xerial/sqlite-jdbc/archive/3.8.11.2.zipunzip 3.8.11.2.zipcd sqlite-jdbc-3.8.11.2修改Makefile:执行编译:make
-
1、简介SQLite是一款轻量级的关系型数据库,它的运算速度非常快,占用资源很少,不仅支持标准的SQL语法,还遵循了数据库的ACID事务。类别:工具2、基础环境类别子项版本获取地址(方法)华为云虚拟机KC1(920)--OSCentOS7.6Kernel4.18软件包 sqlite 3.7.17https://www.sqlite.org/2019/sqlite-autoconf-3300100.tar.gz3、依赖安装无4、组件编译安装一、配置编译环境1、安装wgetyum install wget -y二、获取源码获取“sql-3.7.17”源码包。cd /usr/local/srcwget https://www.sqlite.org/2019/sqlite-autoconf-3300100.tar.gz三、编译和安装2、解压软件包cd /usr/local/srctar -zxvf sqlite-autoconf-3300100.tar.gz3、进入sqlite的安装目录并安装cd sqlite-autoconf-3300100./configure --prefix=/usr/local/sqlite/install && make -j4 && make install 四、运行和验证sqlite3 -version 5、系统配置 无6、测试 无7、参考信息 无8、FAQ 无
-
1 SQLITE简介SQLite是一款轻量级的关系型数据库。2 环境信息2.1 环境信息类别子项版本获取地址OSCentOS7.5 Aarch64https://www.centos.org/download/服务器配置16U16GB50GB软件sqlite3.7.17https://www.sqlite.org/2019/sqlite-autoconf-3300100.tar.gz 3 软件移植3.1 环境准备OS安装类型:CentOS-7.5-aarch64-1804。 注:操作系统安装使用最小简化版安装(如上图),其余步骤安装一般安装操作系统步骤即可。3.1.1 相关软件下载上传1、 上传sqlite-3.7.17.tar.gz源码包至服务器目录下下载地址:https://www.sqlite.org/2019/sqlite-autoconf-3300100.tar.gz2、 上传CentOS-7.5-aarch64-1804.iso至服务器目录下下载地址:https://www.centos.org/download/3.2 软件安装脚本执行指导下载附件脚本至服务器。赋予脚本执行权:限chmod +x sqlite_install.sh执行Sqlite安装脚本:sh sqlite_install.sh4 软件运行4.1 验证执行4.1.1 查看SQLite版本sqlite3 -version回显内容如下:/usr/local/nginx/sbin/nginx 4.1.2 测试SQlitecd /usr/local/src/touch test.dbsqlite3 test.db进入SQLite后,再输入.databases查看数据库信息。.databases回显内容如下:
上滑加载中
推荐直播
-
华为开发者空间玩转DeepSeek
2025/03/13 周四 19:00-20:30
马欣 华为开发者布道师
同学们,想知道如何利用华为开发者空间部署自己的DeepSeek模型吗?想了解如何用DeepSeek在云主机上探索好玩的应用吗?想探讨如何利用DeepSeek在自己的专有云主机上辅助编程吗?让我们来一场云和AI的盛宴。
即将直播 -
华为云Metastudio×DeepSeek与RAG检索优化分享
2025/03/14 周五 16:00-17:30
大海 华为云学堂技术讲师 Cocl 华为云学堂技术讲师
本次直播将带来DeepSeek数字人解决方案,以及如何使用Embedding与Rerank实现检索优化实践,为开发者与企业提供参考,助力场景落地。
去报名
热门标签