1. 介绍
数据库管理系统 YashanDB 崖山数据库系统YashanDB是深圳计算科学研究院自主设计研发的新型数据库管理系统,融入原创的有界计算、近似计算、并行可扩展和跨模融合计算理论,可满足金融、政企、能源等关键行业对高性能、高并发及高安全性的要求。
2. 软件下载地址及安装文档
软件下载:https://download.yashandb.com/download 安装文档:https://doc.yashandb.com/yashandb/23.1/zh/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B/%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2/YashanDB%E4%BA%A7%E5%93%81%E5%AE%89%E8%A3%85/YashanDB%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%AE%89%E8%A3%85.html
3. 软件文档下载
文档暂时还无法下载
4. 物理结构解析
安装文件物理结构
[yashan@snyxdb ~]$ tree install/ install/ ├── admin │ ├── codepage │ │ ├── gb18030 │ │ ├── gbk │ │ ├── iso88591 │ │ ├── pinyin.sort │ │ └── ucs │ ├── dbcr │ │ ├── all_views.sql │ │ ├── core_tables.sql │ │ ├── dstb_system_tables.sql │ │ ├── fixed_views.sql │ │ ├── geometry.sql │ │ ├── spatial_ref_sys.csv │ │ ├── system_jobs.sql │ │ ├── system_packages.sql │ │ ├── system_roles.sql │ │ ├── system_tables.sql │ │ ├── system_users.sql │ │ ├── system_views.sql │ │ ├── user_views.sql │ │ └── wr_tables.sql │ ├── simple_schema │ │ └── sales.sql │ └── upgrade │ ├── 22.1.0 │ │ ├── diff.sql │ │ ├── dstb_preupgrade.out │ │ ├── dstb_preupgrade.sql │ │ ├── dstb_upgrade.sql │ │ ├── postupgrade.out │ │ ├── postupgrade.sql │ │ ├── preupgrade.out │ │ ├── preupgrade.sql │ │ ├── upgrade.sql │ │ └── upgrade.toml │ ├── 22.1.1 │ │ ├── diff.sql │ │ ├── dstb_preupgrade.out │ │ ├── dstb_preupgrade.sql │ │ ├── dstb_upgrade.sql │ │ ├── postupgrade.out │ │ ├── postupgrade.sql │ │ ├── preupgrade.out │ │ ├── preupgrade.sql │ │ ├── upgrade.sql │ │ └── upgrade.toml │ ├── 22.1.5 │ │ ├── diff.sql │ │ ├── dstb_preupgrade.out │ │ ├── dstb_preupgrade.sql │ │ ├── dstb_upgrade.sql │ │ ├── postupgrade.out │ │ ├── postupgrade.sql │ │ ├── preupgrade.out │ │ ├── preupgrade.sql │ │ ├── upgrade.sql │ │ └── upgrade.toml │ ├── 22.2.1 │ │ ├── diff.sql │ │ ├── dstb_preupgrade.out │ │ ├── dstb_preupgrade.sql │ │ ├── dstb_upgrade.sql │ │ ├── postupgrade.out │ │ ├── postupgrade.sql │ │ ├── preupgrade.out │ │ ├── preupgrade.sql │ │ ├── upgrade.sql │ │ └── upgrade.toml │ ├── 22.2.2 │ │ ├── diff.sql │ │ ├── dstb_preupgrade.out │ │ ├── dstb_preupgrade.sql │ │ ├── dstb_upgrade.sql │ │ ├── postupgrade.out │ │ ├── postupgrade.sql │ │ ├── preupgrade.out │ │ ├── preupgrade.sql │ │ ├── upgrade.sql │ │ └── upgrade.toml │ ├── 22.2.3 │ │ ├── diff.sql │ │ ├── dstb_preupgrade.out │ │ ├── dstb_preupgrade.sql │ │ ├── dstb_upgrade.sql │ │ ├── postupgrade.out │ │ ├── postupgrade.sql │ │ ├── preupgrade.out │ │ ├── preupgrade.sql │ │ ├── upgrade.sql │ │ └── upgrade.toml │ ├── 22.2.4 │ │ ├── diff.sql │ │ ├── dstb_preupgrade.out │ │ ├── dstb_preupgrade.sql │ │ ├── dstb_upgrade.sql │ │ ├── postupgrade.out │ │ ├── postupgrade.sql │ │ ├── preupgrade.out │ │ ├── preupgrade.sql │ │ ├── upgrade.sql │ │ └── upgrade.toml │ ├── 22.2.5 │ │ ├── diff.sql │ │ ├── dstb_preupgrade.out │ │ ├── dstb_preupgrade.sql │ │ ├── dstb_upgrade.sql │ │ ├── postupgrade.out │ │ ├── postupgrade.sql │ │ ├── preupgrade.out │ │ ├── preupgrade.sql │ │ ├── upgrade.sql │ │ └── upgrade.toml │ ├── 22.2.6 │ │ ├── diff.sql │ │ ├── dstb_preupgrade.out │ │ ├── dstb_preupgrade.sql │ │ ├── dstb_upgrade.sql │ │ ├── postupgrade.out │ │ ├── postupgrade.sql │ │ ├── preupgrade.out │ │ ├── preupgrade.sql │ │ ├── upgrade.sql │ │ └── upgrade.toml │ ├── 22.2.7 │ │ ├── diff.sql │ │ ├── dstb_preupgrade.out │ │ ├── dstb_preupgrade.sql │ │ ├── dstb_upgrade.sql │ │ ├── postupgrade.out │ │ ├── postupgrade.sql │ │ ├── preupgrade.out │ │ ├── preupgrade.sql │ │ ├── upgrade.sql │ │ └── upgrade.toml │ ├── 22.2.8 │ │ ├── diff.sql │ │ ├── dstb_preupgrade.out │ │ ├── dstb_preupgrade.sql │ │ ├── dstb_upgrade.sql │ │ ├── postupgrade.out │ │ ├── postupgrade.sql │ │ ├── preupgrade.out │ │ ├── preupgrade.sql │ │ ├── upgrade.sql │ │ └── upgrade.toml │ ├── README.txt │ └── version.toml ├── bin │ ├── exp │ ├── imp │ ├── yasagent │ ├── yasbak │ ├── yasboot │ ├── yasdb │ ├── yasldr │ ├── yasom │ ├── yaspwd │ ├── yasql │ ├── yasrman │ ├── yaswrap │ └── yex_server ├── conf │ ├── database_options.json │ ├── profile.toml │ ├── sqlcollect.toml │ ├── sqlhtml.template │ ├── yashandb.bashrc │ ├── yasreport.template │ └── yfs_options.json ├── ext │ ├── bin │ │ ├── fio │ │ └── iperf │ ├── monit │ │ ├── monit │ │ ├── monitrc.template │ │ └── monit.sh │ ├── static │ │ ├── assets │ │ │ ├── Deploy.1c9cf7d8.css │ │ │ ├── Deploy.9fc516d6.js │ │ │ ├── favicon.c096f8ac.ico │ │ │ ├── index.35dbe09f.js │ │ │ └── index.931cd522.css │ │ └── index.html │ └── yasparse ├── gitmoduleversion.dat ├── hosts.toml ├── include │ ├── lgm_interface.h │ ├── yac_include.h │ └── yacli.h ├── java │ └── com │ └── extjava │ └── Loader.class ├── lib │ ├── libaws-s3-c.so │ ├── libcrypto.so.1.1 │ ├── libcsvexp.so -> libcsvexp.so.0 │ ├── libcsvexp.so.0 -> libcsvexp.so.1.1.100 │ ├── libcsvexp.so.1.1.100 │ ├── libcurl.a │ ├── libcurl.so -> libcurl.so.4.8.0 │ ├── libcurl.so.4 -> libcurl.so.4.8.0 │ ├── libcurl.so.4.8.0 │ ├── libdrv_oracle.so │ ├── libdrv_yashan.so │ ├── libextProc_test.so │ ├── libgeos_c.so -> libgeos_c.so.1 │ ├── libgeos_c.so.1 -> libgeos_c.so.1.17.1 │ ├── libgeos_c.so.1.17.1 │ ├── libgeos.so -> libgeos.so.3.11.1 │ ├── libgeos.so.3.11.1 │ ├── libjni.so │ ├── liblz4.so -> liblz4.so.1.9.3 │ ├── liblz4.so.1 -> liblz4.so.1.9.3 │ ├── liblz4.so.1.9.3 │ ├── libpcre2-8.a │ ├── libpcre2-8.so -> libpcre2-8.so.0.10.4 │ ├── libpcre2-8.so.0 -> libpcre2-8.so.0.10.4 │ ├── libpcre2-8.so.0.10.4 │ ├── libproj.so -> libproj.so.25 │ ├── libproj.so.25 -> libproj.so.25.9.1.0 │ ├── libproj.so.25.9.1.0 │ ├── libssl.so -> libssl.so.1.1 │ ├── libssl.so.1.1 │ ├── libtest_preload.so │ ├── libxbsa.so │ ├── libyascli.so -> libyascli.so.0 │ ├── libyascli.so.0 -> libyascli.so.1.1.100 │ ├── libyascli.so.1.1.100 │ ├── libyas_cluster.so -> libyas_cluster.so.0 │ ├── libyas_cluster.so.0 -> libyas_cluster.so.1.1.100 │ ├── libyas_cluster.so.1.1.100 │ ├── libyas_coast.so -> libyas_coast.so.0 │ ├── libyas_coast.so.0 -> libyas_coast.so.1.1.100 │ ├── libyas_coast.so.1.1.100 │ ├── libyas_col_executor.so │ ├── libyas_dstb.so -> libyas_dstb.so.0 │ ├── libyas_dstb.so.0 -> libyas_dstb.so.1.1.100 │ ├── libyas_dstb.so.1.1.100 │ ├── libyas_election.so │ ├── libyasfs.so │ ├── libyas_ha.so -> libyas_ha.so.0 │ ├── libyas_ha.so.0 -> libyas_ha.so.1.1.100 │ ├── libyas_ha.so.1.1.100 │ ├── libyas_infra.so -> libyas_infra.so.0 │ ├── libyas_infra.so.0 -> libyas_infra.so.1.1.100 │ ├── libyas_infra.so.1.1.100 │ ├── libyas_logminer.so │ ├── libyas_plsql.so -> libyas_plsql.so.0 │ ├── libyas_plsql.so.0 -> libyas_plsql.so.1.1.100 │ ├── libyas_plsql.so.1.1.100 │ ├── libyas_server.so -> libyas_server.so.0 │ ├── libyas_server.so.0 -> libyas_server.so.1.1.100 │ ├── libyas_server.so.1.1.100 │ ├── libyas_storage.so -> libyas_storage.so.0 │ ├── libyas_storage.so.0 -> libyas_storage.so.1.1.100 │ ├── libyas_storage.so.1.1.100 │ ├── libycs_c.a │ ├── libycs_fault_point.a │ ├── libycs_ycr.a │ ├── libydbc.so │ ├── libyex_client.so │ ├── libyfs_fault_point.a │ ├── libyfsi.so -> libyfsi.so.0 │ ├── libyfsi.so.0 -> libyfsi.so.0.2.0 │ ├── libyfsi.so.0.2.0 │ ├── libyspi_sdk.so │ ├── libz.so -> libz.so.1.2.12 │ ├── libz.so.1 -> libz.so.1.2.12 │ ├── libz.so.1.2.12 │ ├── libzstd.so -> libzstd.so.1.5.2 │ ├── libzstd.so.1 -> libzstd.so.1.5.2 │ └── libzstd.so.1.5.2 ├── LICENSE ├── om │ ├── yasboot.log │ └── yashandb │ └── conf │ └── tls.toml ├── plug-in │ └── package │ ├── linux │ │ ├── libyspi_geometry.so │ │ └── libyspi_regexp.so │ └── package.ini ├── scripts │ ├── createResourceCgroup.sh │ ├── initDB.sh │ ├── initStandby.sh │ ├── install.ini │ ├── install.sh │ ├── startup.sh │ ├── stop.sh │ └── yascheckStart.sh ├── yashandb-personal-23.1.1.100-linux-x86_64.tar.gz └── yashandb.toml 35 directories, 265 files [yashan@snyxdb ~]$
软件目录结构
[yashan@snyxdb ~]$ tree yasdb_home/ yasdb_home/ └── yashandb └── 23.1.1.100 ├── admin │ ├── codepage │ │ ├── gb18030 │ │ ├── gbk │ │ ├── iso88591 │ │ ├── pinyin.sort │ │ └── ucs │ ├── dbcr │ │ ├── all_views.sql │ │ ├── core_tables.sql │ │ ├── dstb_system_tables.sql │ │ ├── fixed_views.sql │ │ ├── geometry.sql │ │ ├── spatial_ref_sys.csv │ │ ├── system_jobs.sql │ │ ├── system_packages.sql │ │ ├── system_roles.sql │ │ ├── system_tables.sql │ │ ├── system_users.sql │ │ ├── system_views.sql │ │ ├── user_views.sql │ │ └── wr_tables.sql │ ├── simple_schema │ │ └── sales.sql │ └── upgrade │ ├── 22.1.0 │ │ ├── diff.sql │ │ ├── dstb_preupgrade.out │ │ ├── dstb_preupgrade.sql │ │ ├── dstb_upgrade.sql │ │ ├── postupgrade.out │ │ ├── postupgrade.sql │ │ ├── preupgrade.out │ │ ├── preupgrade.sql │ │ ├── upgrade.sql │ │ └── upgrade.toml │ ├── 22.1.1 │ │ ├── diff.sql │ │ ├── dstb_preupgrade.out │ │ ├── dstb_preupgrade.sql │ │ ├── dstb_upgrade.sql │ │ ├── postupgrade.out │ │ ├── postupgrade.sql │ │ ├── preupgrade.out │ │ ├── preupgrade.sql │ │ ├── upgrade.sql │ │ └── upgrade.toml │ ├── 22.1.5 │ │ ├── diff.sql │ │ ├── dstb_preupgrade.out │ │ ├── dstb_preupgrade.sql │ │ ├── dstb_upgrade.sql │ │ ├── postupgrade.out │ │ ├── postupgrade.sql │ │ ├── preupgrade.out │ │ ├── preupgrade.sql │ │ ├── upgrade.sql │ │ └── upgrade.toml │ ├── 22.2.1 │ │ ├── diff.sql │ │ ├── dstb_preupgrade.out │ │ ├── dstb_preupgrade.sql │ │ ├── dstb_upgrade.sql │ │ ├── postupgrade.out │ │ ├── postupgrade.sql │ │ ├── preupgrade.out │ │ ├── preupgrade.sql │ │ ├── upgrade.sql │ │ └── upgrade.toml │ ├── 22.2.2 │ │ ├── diff.sql │ │ ├── dstb_preupgrade.out │ │ ├── dstb_preupgrade.sql │ │ ├── dstb_upgrade.sql │ │ ├── postupgrade.out │ │ ├── postupgrade.sql │ │ ├── preupgrade.out │ │ ├── preupgrade.sql │ │ ├── upgrade.sql │ │ └── upgrade.toml │ ├── 22.2.3 │ │ ├── diff.sql │ │ ├── dstb_preupgrade.out │ │ ├── dstb_preupgrade.sql │ │ ├── dstb_upgrade.sql │ │ ├── postupgrade.out │ │ ├── postupgrade.sql │ │ ├── preupgrade.out │ │ ├── preupgrade.sql │ │ ├── upgrade.sql │ │ └── upgrade.toml │ ├── 22.2.4 │ │ ├── diff.sql │ │ ├── dstb_preupgrade.out │ │ ├── dstb_preupgrade.sql │ │ ├── dstb_upgrade.sql │ │ ├── postupgrade.out │ │ ├── postupgrade.sql │ │ ├── preupgrade.out │ │ ├── preupgrade.sql │ │ ├── upgrade.sql │ │ └── upgrade.toml │ ├── 22.2.5 │ │ ├── diff.sql │ │ ├── dstb_preupgrade.out │ │ ├── dstb_preupgrade.sql │ │ ├── dstb_upgrade.sql │ │ ├── postupgrade.out │ │ ├── postupgrade.sql │ │ ├── preupgrade.out │ │ ├── preupgrade.sql │ │ ├── upgrade.sql │ │ └── upgrade.toml │ ├── 22.2.6 │ │ ├── diff.sql │ │ ├── dstb_preupgrade.out │ │ ├── dstb_preupgrade.sql │ │ ├── dstb_upgrade.sql │ │ ├── postupgrade.out │ │ ├── postupgrade.sql │ │ ├── preupgrade.out │ │ ├── preupgrade.sql │ │ ├── upgrade.sql │ │ └── upgrade.toml │ ├── 22.2.7 │ │ ├── diff.sql │ │ ├── dstb_preupgrade.out │ │ ├── dstb_preupgrade.sql │ │ ├── dstb_upgrade.sql │ │ ├── postupgrade.out │ │ ├── postupgrade.sql │ │ ├── preupgrade.out │ │ ├── preupgrade.sql │ │ ├── upgrade.sql │ │ └── upgrade.toml │ ├── 22.2.8 │ │ ├── diff.sql │ │ ├── dstb_preupgrade.out │ │ ├── dstb_preupgrade.sql │ │ ├── dstb_upgrade.sql │ │ ├── postupgrade.out │ │ ├── postupgrade.sql │ │ ├── preupgrade.out │ │ ├── preupgrade.sql │ │ ├── upgrade.sql │ │ └── upgrade.toml │ ├── README.txt │ └── version.toml ├── bin │ ├── exp │ ├── imp │ ├── yasagent │ ├── yasbak │ ├── yasboot │ ├── yasdb │ ├── yasldr │ ├── yasom │ ├── yaspwd │ ├── yasql │ ├── yasrman │ ├── yaswrap │ └── yex_server ├── client │ └── yasc_service.ini ├── conf │ ├── database_options.json │ ├── monit │ │ ├── yasagent.conf │ │ ├── yashandb-db-1-1.conf │ │ └── yasom.conf │ ├── profile.toml │ ├── sqlcollect.toml │ ├── sqlhtml.template │ ├── yashandb.bashrc │ ├── yasreport.template │ └── yfs_options.json ├── ext │ ├── bin │ │ ├── fio │ │ └── iperf │ ├── monit │ │ ├── conf │ │ │ └── user.conf │ │ ├── log │ │ ├── monit │ │ ├── monitrc │ │ ├── monitrc.template │ │ ├── monit.sh │ │ └── run │ ├── static │ │ ├── assets │ │ │ ├── Deploy.1c9cf7d8.css │ │ │ ├── Deploy.9fc516d6.js │ │ │ ├── favicon.c096f8ac.ico │ │ │ ├── index.35dbe09f.js │ │ │ └── index.931cd522.css │ │ └── index.html │ └── yasparse ├── gitmoduleversion.dat ├── include │ ├── lgm_interface.h │ ├── yac_include.h │ └── yacli.h ├── java │ └── com │ └── extjava │ └── Loader.class ├── lib │ ├── libaws-s3-c.so │ ├── libcrypto.so.1.1 │ ├── libcsvexp.so -> libcsvexp.so.0 │ ├── libcsvexp.so.0 -> libcsvexp.so.1.1.100 │ ├── libcsvexp.so.1.1.100 │ ├── libcurl.a │ ├── libcurl.so -> libcurl.so.4.8.0 │ ├── libcurl.so.4 -> libcurl.so.4.8.0 │ ├── libcurl.so.4.8.0 │ ├── libdrv_oracle.so │ ├── libdrv_yashan.so │ ├── libextProc_test.so │ ├── libgeos_c.so -> libgeos_c.so.1 │ ├── libgeos_c.so.1 -> libgeos_c.so.1.17.1 │ ├── libgeos_c.so.1.17.1 │ ├── libgeos.so -> libgeos.so.3.11.1 │ ├── libgeos.so.3.11.1 │ ├── libjni.so │ ├── liblz4.so -> liblz4.so.1.9.3 │ ├── liblz4.so.1 -> liblz4.so.1.9.3 │ ├── liblz4.so.1.9.3 │ ├── libpcre2-8.a │ ├── libpcre2-8.so -> libpcre2-8.so.0.10.4 │ ├── libpcre2-8.so.0 -> libpcre2-8.so.0.10.4 │ ├── libpcre2-8.so.0.10.4 │ ├── libproj.so -> libproj.so.25 │ ├── libproj.so.25 -> libproj.so.25.9.1.0 │ ├── libproj.so.25.9.1.0 │ ├── libssl.so -> libssl.so.1.1 │ ├── libssl.so.1.1 │ ├── libtest_preload.so │ ├── libxbsa.so │ ├── libyascli.so -> libyascli.so.0 │ ├── libyascli.so.0 -> libyascli.so.1.1.100 │ ├── libyascli.so.1.1.100 │ ├── libyas_cluster.so -> libyas_cluster.so.0 │ ├── libyas_cluster.so.0 -> libyas_cluster.so.1.1.100 │ ├── libyas_cluster.so.1.1.100 │ ├── libyas_coast.so -> libyas_coast.so.0 │ ├── libyas_coast.so.0 -> libyas_coast.so.1.1.100 │ ├── libyas_coast.so.1.1.100 │ ├── libyas_col_executor.so │ ├── libyas_dstb.so -> libyas_dstb.so.0 │ ├── libyas_dstb.so.0 -> libyas_dstb.so.1.1.100 │ ├── libyas_dstb.so.1.1.100 │ ├── libyas_election.so │ ├── libyasfs.so │ ├── libyas_ha.so -> libyas_ha.so.0 │ ├── libyas_ha.so.0 -> libyas_ha.so.1.1.100 │ ├── libyas_ha.so.1.1.100 │ ├── libyas_infra.so -> libyas_infra.so.0 │ ├── libyas_infra.so.0 -> libyas_infra.so.1.1.100 │ ├── libyas_infra.so.1.1.100 │ ├── libyas_logminer.so │ ├── libyas_plsql.so -> libyas_plsql.so.0 │ ├── libyas_plsql.so.0 -> libyas_plsql.so.1.1.100 │ ├── libyas_plsql.so.1.1.100 │ ├── libyas_server.so -> libyas_server.so.0 │ ├── libyas_server.so.0 -> libyas_server.so.1.1.100 │ ├── libyas_server.so.1.1.100 │ ├── libyas_storage.so -> libyas_storage.so.0 │ ├── libyas_storage.so.0 -> libyas_storage.so.1.1.100 │ ├── libyas_storage.so.1.1.100 │ ├── libycs_c.a │ ├── libycs_fault_point.a │ ├── libycs_ycr.a │ ├── libydbc.so │ ├── libyex_client.so │ ├── libyfs_fault_point.a │ ├── libyfsi.so -> libyfsi.so.0 │ ├── libyfsi.so.0 -> libyfsi.so.0.2.0 │ ├── libyfsi.so.0.2.0 │ ├── libyspi_sdk.so │ ├── libz.so -> libz.so.1.2.12 │ ├── libz.so.1 -> libz.so.1.2.12 │ ├── libz.so.1.2.12 │ ├── libzstd.so -> libzstd.so.1.5.2 │ ├── libzstd.so.1 -> libzstd.so.1.5.2 │ └── libzstd.so.1.5.2 ├── LICENSE ├── log │ ├── monit.log │ └── yashandb │ └── db-1-1 │ ├── run │ │ └── run.log │ └── slow │ └── slow.log ├── om │ ├── yasboot.log │ └── yashandb │ ├── conf │ │ ├── node.toml │ │ ├── tls.toml │ │ ├── yasagent.toml │ │ └── yasom.toml │ ├── data │ │ ├── cod_domor.db │ │ └── yasboot_sys.pwd │ └── log │ ├── worker │ ├── yasagent.log │ ├── yasagent-panic.log │ ├── yasagent-start.log │ ├── yasom.log │ ├── yasom-panic.log │ └── yasom-start.log ├── plug-in │ └── package │ ├── linux │ │ ├── libyspi_geometry.so │ │ └── libyspi_regexp.so │ └── package.ini ├── scripts │ ├── createResourceCgroup.sh │ ├── initDB.sh │ ├── initStandby.sh │ ├── install.ini │ ├── install.sh │ ├── startup.sh │ ├── stop.sh │ └── yascheckStart.sh └── yashandb-personal-23.1.1.100-linux-x86_64.tar.gz 50 directories, 283 files [yashan@snyxdb ~]$
数据文件结构
[yashan@snyxdb ~]$ tree yasdb_data/ yasdb_data/ └── db-1-1 ├── archive │ └── arch_0_1.ARC ├── backup ├── config │ └── yasdb.ini ├── data ├── dbfiles │ ├── ctrl1 │ ├── ctrl2 │ ├── ctrl3 │ ├── dwf │ ├── redo1 │ ├── redo2 │ ├── redo3 │ ├── redo4 │ ├── swap │ ├── sysaux │ ├── system │ ├── temp │ ├── undo │ └── users ├── diag │ ├── adr.pid │ ├── hm │ ├── metadata │ │ ├── hm_finding │ │ ├── hm_run │ │ ├── incident │ │ └── problem │ └── trace │ └── yashandb_yas_22.trc ├── external │ └── server │ └── yex_server.ini ├── instance │ ├── yasdb1.pwd │ ├── yasdb.ipc │ ├── yasdb.pid │ └── yasdb.pwd ├── local_fs │ └── users ├── log │ ├── alert │ │ └── alert.log │ ├── audit │ ├── external │ │ └── server │ ├── listener │ │ └── listener.log │ ├── run │ ├── start.log │ └── trace └── tmp 24 directories, 30 files [yashan@snyxdb ~]$
小结
1. 通过软件目录检查: exp/imp/yasldr/yasrman 以上可执行程序和Oracle类似. 2. 通过文件文件目录检查:ctrl1/redo1/sysaux/system/undo/users 物理结构基本和Oracle一致
5. 功能测试
dual查询
[yashan@snyxdb dbfiles]$ yasql sys/Root_1234
YashanDB SQL Personal Edition Release 23.1.1.100 x86_64
Connected to:
YashanDB Server Personal Edition Release 23.1.1.100 x86_64 - X86 64bit Linux
SQL> select sysdate from dual;
SYSDATE
--------------------------------
2023-11-24
1 row fetched.
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YYY
----------------------------------------------------------------
2023-11-24 15:28:00
1 row fetched.
SQL>
用户创建
SQL> create user hsql identified by Root_1234;
Succeed.
SQL> grant connect,resource to hsql;
YAS-02216 invalid privilege or role specified
SQL> grant connect to hsql;
Succeed.
SQL> grant resource to hsql;
Succeed.
SQL> grant dba to hsql;
Succeed.
SQL>
create table
SQL> create table hsql.drop_1(c1 number,c2 varchar2(4000)) tablespace users;
Succeed.
SQL>
插入1000万数据
### YashanDB
SQL> set timing on
SQL> begin
for i in 1 .. 100 loop
for j in 1 .. 100000 loop
insert into hsql.drop_1 values(j,'orastar');
end loop;
commit;
end loop;
commit;
end;
/ 2 3 4 5 6 7 8 9 10
PL/SQL Succeed.
Elapsed: 00:00:36.840
SQL>
### Oracle 11.2.0.4
sys@ORCL>set timing on
sys@ORCL>begin
for i in 1 .. 100 loop
for j in 1 .. 100000 loop
insert into hsql.drop_1 values(j,'orastar');
end loop;
commit;
end loop;
commit;
end;
/ 2 3 4 5 6 7 8 9 10
PL/SQL procedure successfully completed.
Elapsed: 00:02:57.34
sys@ORCL>
count
### YashanDB
SQL> select count(1) from hsql.drop_1;
COUNT(1)
---------------------
10000000
1 row fetched.
Elapsed: 00:00:00.333
SQL>
### Oracle 11.2.0.4
sys@ORCL>select count(1) from hsql.drop_1;
COUNT(1)
----------
10000000
Elapsed: 00:00:00.21
sys@ORCL>
CRAS
### YashanDB
SQL> create table hsql.drop_2 as select * from hsql.drop_1;
Succeed.
Elapsed: 00:00:21.069
SQL>
### Oracle 11.2.0.4
sys@ORCL>create table hsql.drop_2 as select * from hsql.drop_1;
Table created.
Elapsed: 00:00:08.88
sys@ORCL>
USE_HASH
### YashanDB
SQL> explain select /*+ USE_HASH(a b) */count(1) from hsql.drop_1 a,hsql.drop_2 b WHERE A.C1=B.C1;
PLAN_DESCRIPTION
----------------------------------------------------------------
SQL hash value: 4241072954
Optimizer: ADOPT_C
+----+--------------------------------+----------------------+------------+----------+-------------+--------------------------------+
| Id | Operation type | Name | Owner | Rows | Cost(%CPU) | Partition info |
+----+--------------------------------+----------------------+------------+----------+-------------+--------------------------------+
| 0 | SELECT STATEMENT | | | | | |
| 1 | AGGREGATE | | | 1| 311( 0)| |
|* 2 | HASH JOIN INNER | | | 100000| 310( 0)| |
| 3 | TABLE ACCESS FULL | DROP_1 | HSQL | 100000| 130( 0)| |
| 4 | TABLE ACCESS FULL | DROP_2 | HSQL | 100000| 130( 0)| |
+----+--------------------------------+----------------------+------------+----------+-------------+--------------------------------+
Operation Information (identified by operation id):
---------------------------------------------------
2 - Predicate : access("A"."C1" = "B"."C1")
17 rows fetched.
Elapsed: 00:00:00.002
SQL>
SQL> select /*+ USE_HASH(a b) */count(1) from hsql.drop_1 a,hsql.drop_2 b WHERE A.C1=B.C1;
COUNT(1)
---------------------
1000000000
1 row fetched.
Elapsed: 00:02:22.520
SQL>
### Oracle 11.2.0.4
sys@ORCL>explain plan for select /*+ USE_HASH(a b) */count(1) from hsql.drop_1 a,hsql.drop_2 b WHERE A.C1=B.C1;
Explained.
Elapsed: 00:00:00.04
sys@ORCL>select * from table(dbms_xplan.display());
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 3022985452
--------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time |
--------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 26 | | 48552 (8)| 00:09:43 |
| 1 | SORT AGGREGATE | | 1 | 26 | | | |
|* 2 | HASH JOIN | | 1352M| 32G| 241M| 48552 (8)| 00:09:43 |
| 3 | TABLE ACCESS FULL| DROP_1 | 10M| 125M| | 6926 (1)| 00:01:24 |
| 4 | TABLE ACCESS FULL| DROP_2 | 12M| 158M| | 6814 (1)| 00:01:22 |
--------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("A"."C1"="B"."C1")
Note
-----
- dynamic sampling used for this statement (level=2)
20 rows selected.
Elapsed: 00:00:00.05
sys@ORCL>select /*+ USE_HASH(a b) */count(1) from hsql.drop_1 a,hsql.drop_2 b WHERE A.C1=B.C1;
COUNT(1)
----------
1000000000
Elapsed: 00:00:56.80
sys@ORCL>
创建索引
### YashanDB
SQL> create index hsql.idx1 on hsql.drop_1(c1) tablespace users;
Succeed.
Elapsed: 00:00:08.048
SQL> create index hsql.idx2 on hsql.drop_2(c1) tablespace users;
Succeed.
Elapsed: 00:00:10.288
SQL>
### Oracle 11.2.0.4
sys@ORCL>create index hsql.idx1 on hsql.drop_1(c1) tablespace users;
Index created.
Elapsed: 00:00:04.11
sys@ORCL>create index hsql.idx2 on hsql.drop_2(c1) tablespace users;
Index created.
Elapsed: 00:00:04.11
sys@ORCL>
USE_NL
### YashanDB
SQL> explain select /*+ USE_NL(a b) */count(1) from hsql.drop_1 a,hsql.drop_2 b WHERE A.C1=B.C1;
PLAN_DESCRIPTION
----------------------------------------------------------------
SQL hash value: 3233588136
Optimizer: ADOPT_C
+----+--------------------------------+----------------------+------------+----------+-------------+--------------------------------+
| Id | Operation type | Name | Owner | Rows | Cost(%CPU) | Partition info |
+----+--------------------------------+----------------------+------------+----------+-------------+--------------------------------+
| 0 | SELECT STATEMENT | | | | | |
| 1 | AGGREGATE | | | 1| 141( 0)| |
| 2 | NESTED LOOPS INNER | | | 100000| 139( 0)| |
| 3 | INDEX FAST FULL SCAN | IDX1 | HSQL | 100000| 93( 0)| |
|* 4 | INDEX RANGE SCAN | IDX2 | HSQL | 1| 6( 0)| |
+----+--------------------------------+----------------------+------------+----------+-------------+--------------------------------+
Operation Information (identified by operation id):
---------------------------------------------------
4 - Predicate : access("B"."C1" = "A"."C1")
17 rows fetched.
Elapsed: 00:00:00.002
SQL> select /*+ USE_NL(a b) */count(1) from hsql.drop_1 a,hsql.drop_2 b WHERE A.C1=B.C1;
COUNT(1)
---------------------
1000000000
1 row fetched.
Elapsed: 00:01:10.675
SQL>
### Oracle 11.2.0.4
sys@ORCL>explain plan for select /*+ USE_NL(a b) */count(1) from hsql.drop_1 a,hsql.drop_2 b WHERE A.C1=B.C1;
Explained.
Elapsed: 00:00:00.03
sys@ORCL>select * from table(dbms_xplan.display());
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 3315348156
-------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 26 | 10M (1)| 33:51:52 |
| 1 | SORT AGGREGATE | | 1 | 26 | | |
| 2 | NESTED LOOPS | | 1352M| 32G| 10M (1)| 33:51:52 |
| 3 | INDEX FAST FULL SCAN| IDX1 | 10M| 125M| 6105 (1)| 00:01:14 |
|* 4 | INDEX RANGE SCAN | IDX2 | 134 | 1742 | 2 (0)| 00:00:01 |
-------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
4 - access("A"."C1"="B"."C1")
Note
-----
- dynamic sampling used for this statement (level=2)
20 rows selected.
Elapsed: 00:00:00.04
sys@ORCL>select /*+ USE_NL(a b) */count(1) from hsql.drop_1 a,hsql.drop_2 b WHERE A.C1=B.C1;
COUNT(1)
----------
1000000000
Elapsed: 00:00:40.62
sys@ORCL>
YashanDB数据库和Oracle相似度较高,建议小伙伴都测试下。
6. 总结
1. 通过软件目录检查: exp/imp/yasldr/yasrman 以上可执行程序和Oracle类似. 2. 通过文件文件目录检查:ctrl1/redo1/sysaux/system/undo/users 物理结构基本和Oracle一致 3. YashanDB物理结构及SQL语句与Oracle相似度较高,几乎可以从Oracle拿过来直接使用。 4. 通过性能对比,YashanDB插入数据性能更优,Oracle use_hash性能理优。 YashanDB数据库和Oracle相似度较高,希望YashanDB在兼容性、高可用性、可观测性及性能方面不断优化,推荐社区小伙伴都测试下。
数据库 | 插入1000万数据(秒) | count | CRAS | USE_HASH | 创建索引 | USE_NL |
---|---|---|---|---|---|---|
YashanDB 23.1.1.100 | Elapsed: 00:00:36.840 | Elapsed: 00:00:00.333 | Elapsed: 00:00:21.069 | Elapsed: 00:02:22.520 | Elapsed: 00:00:08.048 | Elapsed: 00:01:10.675 |
Oracle 11.2.0.4 | Elapsed: 00:02:57.34 | Elapsed: 00:00:00.21 | Elapsed: 00:00:08.88 | Elapsed: 00:00:56.80 | Elapsed: 00:00:04.11 | Elapsed: 00:00:40.62 |
最后修改时间:2023-11-24 16:53:02
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。