一个KADB测试实践

  • 测试结果

本文档描述xxxx测试中6个典型测试场景的测试结果及背景,旨在对不同数据量,不同存储方式,不同优化器三者的组合优化进行探索,进而为未来的类似测试提供组合优化参考。

数据插入(500万)

5进程批量插入(500万)

单表增量与数据合并去重(1000万)

简单查询(3亿数据)

综合统计(3亿数据)

排序过滤(3亿数据)

xxx

18s

25s

28s

0.049s

41s

144s

金仓

31.808s

36.998s

19.888s

0.463s

8.496s

37.311s

         经测试发现在目前的测试数据量和计算实例部署的情况下,大多数场景使用pg优化器+heap表+索引的方式得到比AO表+9级zlib压缩+GPORA的组合更好的测试结果。

         在简单查询模式测试(三个in查询子嵌套)的测试场景,使用heap表+索引+GPORCA得到比pg优化器更好的测试结果

         思考:选用heap或者ao表和数据量,部署的计算实例及查询语句条件相关,目前没有探索到一个选择定量标准,需要在更多的测试环境中验证

  • 测试背景
  1. 测试数据量

tb_mz_sfmxb_source_r:25401708,行存

tb_mz_sfmxb_p_r:304820496,行存按字段sfjssj月分区表

tb_mz_ghmxb:24000000,行存

tb_dic_wd_yljgzd:2000w,行存,复制分布

tb_dic_wd_wsxzjgzdb:2000w,行存,复制分布

  1. 测试环境

cpu:arm 16c

内存:128GB

磁盘:1T SSD

三个虚拟机节点,每个节点部署12个计算实例

  1. 资源测试结果

gpcheckperf -f /home/mppadmin/hostfile -r N -D -d /dbdata

====================

==  RESULT 2025-02-22T16:21:24.741047

====================

Netperf bisection bandwidth test

mdw -> sdw1 = 984.920000

sdw2 -> mdw = 894.770000

sdw1 -> mdw = 851.700000

mdw -> sdw2 = 985.110000

Summary:

sum = 3716.50 MB/sec

min = 851.70 MB/sec

max = 985.11 MB/sec

avg = 929.13 MB/sec

median = 984.92 MB/sec

gpcheckperf -f /home/mppadmin/hostfile -d /dbdata -r ds -D -v -S 256GB

====================

==  RESULT 2025-02-22T16:30:31.592169

====================

 disk write avg time (sec): 152.18

 disk write tot bytes: 824633720832

 disk write tot bandwidth (MB/s): 5167.87

 disk write min bandwidth (MB/s): 1712.91 [ mdw]

 disk write max bandwidth (MB/s): 1731.35 [sdw1]

 -- per host bandwidth --

    disk write bandwidth (MB/s): 1712.91 [ mdw]

    disk write bandwidth (MB/s): 1731.35 [sdw1]

    disk write bandwidth (MB/s): 1723.61 [sdw2]

 disk read avg time (sec): 292.12

 disk read tot bytes: 824633720832

 disk read tot bandwidth (MB/s): 2694.91

 disk read min bandwidth (MB/s): 860.84 [ mdw]

 disk read max bandwidth (MB/s): 929.59 [sdw1]

 -- per host bandwidth --

    disk read bandwidth (MB/s): 860.84 [ mdw]

    disk read bandwidth (MB/s): 929.59 [sdw1]

    disk read bandwidth (MB/s): 904.48 [sdw2]

 stream tot bandwidth (MB/s): 28555.80

 stream min bandwidth (MB/s): 8279.00 [sdw2]

 stream max bandwidth (MB/s): 10142.00 [sdw1]

 -- per host bandwidth --

    stream bandwidth (MB/s): 10134.80 [ mdw]

    stream bandwidth (MB/s): 10142.00 [sdw1

  • 测试场景及SQL

测试共6个场景,各个场景sql如下(后缀’_c’表示列存表,‘_r’表示行存表,’_p’为分区表),除特别注明默认优化器使用pg

  1. 批量数据插入测试

INSERT INTO tb_mz_sfmxb_500_c select * from tb_mz_sfmxb_source_r limit 5000000;

  1. 多进程批量数据插入测试

INSERT INTO CENYLFW.tb_mz_sfmxb_500_bf_r select * from CENYLFW.tb_mz_sfmxb_source_r limit 5000000;

  1. 单表增量数据与历史数据去重合并测试

Insert  into tb_mz_sfmxb_union_1000_r  select  yljgdm,sfmxid from (select yljgdm,sfmxid,row_number() over(partition by  yljgdm,sfmxid order by yljgdm,sfmxid desc) row_num from (select  yljgdm,sfmxid,jlgxsj from tb_mz_sfmxb_1000_r a

union all

select  yljgdm,sfmxid,jlgxsj  from tb_mz_sfmxb_p where SFJSSJ>='20220101' and SFJSSJ<'20220211') c

group by  yljgdm,sfmxid) d

where row_num=1 ;

  1. 简单模式测试

使用GPORA优化器

set optimizer to on;

select * from tb_mz_sfmxb_p_r where brwyid in (select pid from tb_his_grbsxx where daid in (select daid from tb_chss_grjbxx where sfzh='16b550deef4679c4faff44901310b676'));

  1. 统计测试

select to_char(a.sfjssj,'yyyy') f_year,

                     extract(quarter from a.sfjssj) f_quarter,

                     to_char(a.sfjssj,'yyyymm') f_month,

                     to_char(a.sfjssj,'yyyy')||extract(week from now()) f_week,

                     to_char(a.sfjssj,'yyyymm') f_day,

                     qh.sjjgid f_sjqh,

                     jg.xnxzqhdm f_qxqh,

                     jg.yljgid f_jg_id,

                     substr(jg.wsjglbdm, 1, 4) f_jg_lx,

                     jg.jglsgxdm f_jg_lsgxdm,

                     a.kdksptdm f_ks,

                     a.kdysid f_ys_id,

                     a.kdysbh f_ys_gh,

                     a.kdysxm f_ys_mc,

                     sum(case

                           when a.tfbz = '2' then

                            -abs(mxxmssje)

                           else

                            abs(mxxmssje)

                  end) as ylsr,

                     sum(case

                         when a.tfbz = '2' and

                coalesce(b.lcyxlxbm, '01') not in ('01', '03') then

                            -abs(mxxmssje)

                           when a.tfbz <> '2' and

                 coalesce(b.lcyxlxbm, '01') not in ('01', '03') then

                            abs(mxxmssje)

                         end) as ylsr_zy,

                     sum(case

                           when a.tfbz = '2' and

                 coalesce(b.lcyxlxbm, '01') in ('01', '03') then

                            -abs(mxxmssje)

                           when a.tfbz <> '2' and

                coalesce(b.lcyxlxbm, '01') in ('01', '03') then

                            abs(mxxmssje)

                         end) as ylsr_xy,

                     sum(case

                           when a.tfbz = '2' then

                            -abs(mxxmssje)

                           else

                            abs(mxxmssje)

                         end) as mzylsr,

                     sum(case

                           when a.tfbz = '2' and

               coalesce(b.lcyxlxbm, '01') not in ('01', '03') then

                            -abs(mxxmssje)

                           when a.tfbz <> '2' and

               coalesce(b.lcyxlxbm, '01') not in ('01', '03') then

                            abs(mxxmssje)

                         end) as mzylsr_zy,

                     sum(case

                           when a.tfbz = '2' and

               coalesce(b.lcyxlxbm, '01') in ('01', '03') then

                            -abs(mxxmssje)

                           when a.tfbz <> '2' and

               coalesce(b.lcyxlxbm, '01') in ('01', '03') then

                            abs(mxxmssje)

                         end) as mzylsr_xy,

                     0 as zyylsr,

                     0 as zyylsr_zy,

                     0 as zyylsr_xy,

                     sum(case

            when a.tfbz = '2' and substr(a.fysrglbm, 1, 2) = '03' then

                            -abs(mxxmssje)

          when a.tfbz <> '2' and substr(a.fysrglbm, 1, 2) = '03' then

                            abs(mxxmssje)

                         end) zlsr,

                     sum(case

          when a.tfbz = '2' and substr(a.fysrglbm, 1, 2) = '03' and

                 coalesce(b.lcyxlxbm, '01') not in ('01', '03') then

                            -abs(mxxmssje)

           when a.tfbz <> '2' and substr(a.fysrglbm, 1, 2) = '03' and

            coalesce(b.lcyxlxbm, '01') not in ('01', '03') then

                            abs(mxxmssje)

                         end) zlsr_zy,

                     sum(case

           when a.tfbz = '2' and substr(a.fysrglbm, 1, 2) = '03' and

                                coalesce(b.lcyxlxbm, '01') in ('01', '03') then

                            -abs(mxxmssje)

           when a.tfbz <> '2' and substr(a.fysrglbm, 1, 2) = '03' and

          coalesce(b.lcyxlxbm, '01') in ('01', '03') then

                            abs(mxxmssje)

                         end) zlsr_xy,

                     sum(case

          when a.tfbz = '2' and substr(a.fysrglbm, 1, 2) = '03' then

                            -abs(mxxmssje)

          when a.tfbz <> '2' and substr(a.fysrglbm, 1, 2) = '03' then

                            abs(mxxmssje)

                         end) mzzlsr,

                     sum(case

          when a.tfbz = '2' and substr(a.fysrglbm, 1, 2) = '03' and

          coalesce(b.lcyxlxbm, '01') not in ('01', '03') then

                            -abs(mxxmssje)

          when a.tfbz <> '2' and substr(a.fysrglbm, 1, 2) = '03' and

          coalesce(b.lcyxlxbm, '01') not in ('01', '03') then

                            abs(mxxmssje)

                         end) mzzlsr_zy,

                     sum(case

         when a.tfbz = '2' and substr(a.fysrglbm, 1, 2) = '03' and

         coalesce(b.lcyxlxbm, '01') in ('01', '03') then

                            -abs(mxxmssje)

         when a.tfbz <> '2' and substr(a.fysrglbm, 1, 2) = '03' and

         coalesce(b.lcyxlxbm, '01') in ('01', '03') then

                            abs(mxxmssje)

                         end) mzzlsr_xy,

                     0 zyzlsr,

                     0 zyzlsr_zy,

                     0 zyzlsr_xy,

                     sum(case

          when a.tfbz = '2' and a.fysrglbm in ('01', '02', '03') then

                            -abs(mxxmssje)

                           when a.tfbz <> '2' and

                   a.fysrglbm in ('01', '02', '03') then

                            abs(mxxmssje)

                         end) ypsr,

                     sum(case

           when a.tfbz = '2' and a.fysrglbm in ('01', '02', '03') and

           coalesce(b.lcyxlxbm, '01') not in ('01', '03') then

                            -abs(mxxmssje)

                           when a.tfbz <> '2' and

                  a.fysrglbm in ('01', '02', '03') and

                coalesce(b.lcyxlxbm, '01') not in ('01', '03') then

                            abs(mxxmssje)

                         end) ypsr_zy,

                     sum(case

          when a.tfbz = '2' and a.fysrglbm in ('01', '02', '03') and

         coalesce(b.lcyxlxbm, '01') in ('01', '03') then

                            -abs(mxxmssje)

                           when a.tfbz <> '2' and

                  a.fysrglbm in ('01', '02', '03') and

         coalesce(b.lcyxlxbm, '01') in ('01', '03') then

                            abs(mxxmssje)

                         end) ypsr_xy,

                     sum(case

          when a.tfbz = '2' and a.fysrglbm in ('01', '02', '03') then

                            -abs(mxxmssje)

                           when a.tfbz <> '2' and

            a.fysrglbm in ('01', '02', '03') then

                            abs(mxxmssje)

                         end) mzypsr,

                     sum(case

         when a.tfbz = '2' and a.fysrglbm in ('01', '02', '03') and

         coalesce(b.lcyxlxbm, '01') not in ('01', '03') then

                            -abs(mxxmssje)

                           when a.tfbz <> '2' and

        a.fysrglbm in ('01', '02', '03') and

         coalesce(b.lcyxlxbm, '01') not in ('01', '03') then

                            abs(mxxmssje)

                         end) mzypsr_zy,

                     sum(case

          when a.tfbz = '2' and a.fysrglbm in ('01', '02', '03') and

           coalesce(b.lcyxlxbm, '01') in ('01', '03') then

                            -abs(mxxmssje)

                           when a.tfbz <> '2' and

                   a.fysrglbm in ('01', '02', '03') and

                coalesce(b.lcyxlxbm, '01') in ('01', '03') then

                            abs(mxxmssje)

                         end) mzypsr_xy,

                     0 zyypsr,

                     0 zyypsr_zy,

                     0 zyypsr_xy,

                     sum(case

        when a.tfbz = '2' and a.fysrglbm = '05' then

                            -abs(mxxmssje)

         when a.tfbz <> '2' and a.fysrglbm = '05' then

                            abs(mxxmssje)

                         end) mzjcsr,

                     sum(case

          when a.tfbz = '2' and a.fysrglbm = '05' and

           coalesce(b.lcyxlxbm, '01') not in ('01', '03') then

                            -abs(mxxmssje)

             when a.tfbz <> '2' and a.fysrglbm = '05' and

             coalesce(b.lcyxlxbm, '01') not in ('01', '03') then

                            abs(mxxmssje)

                         end) mzjcsr_zy,

                     sum(case

              when a.tfbz = '2' and a.fysrglbm = '05' and

              coalesce(b.lcyxlxbm, '01') in ('01', '03') then

                            -abs(mxxmssje)

              when a.tfbz <> '2' and a.fysrglbm = '05' and

            coalesce(b.lcyxlxbm, '01') in ('01', '03') then

                            abs(mxxmssje)

                         end) mzjcsr_xy,

                     sum(case

         when a.tfbz = '2' and a.fysrglbm = '08' then

                            -abs(mxxmssje)

        when a.tfbz <> '2' and a.fysrglbm = '08' then

                            abs(mxxmssje)

                         end) mzzhilsr,

                     sum(case

              when a.tfbz = '2' and a.fysrglbm = '08' and

               coalesce(b.lcyxlxbm, '01') not in ('01', '03') then

                            -abs(mxxmssje)

              when a.tfbz <> '2' and a.fysrglbm = '08' and

             coalesce(b.lcyxlxbm, '01') not in ('01', '03') then

                            abs(mxxmssje)

                         end) mzzhilsr_zy,

                     sum(case

               when a.tfbz = '2' and a.fysrglbm = '08' and

                coalesce(b.lcyxlxbm, '01') in ('01', '03') then

                            -abs(mxxmssje)

               when a.tfbz <> '2' and a.fysrglbm = '08' and

               coalesce(b.lcyxlxbm, '01') in ('01', '03') then

                            abs(mxxmssje)

                         end) mzzhilsr_xy,

                     0 zyjcsr,

                     0 zyjcsr_zy,

                     0 zyjcsr_xy,

                     0 zyzhilsr,

                     0 zyzhilsr_zy,

                     0 zyzhilsr_xy,

                     0 zycwsr,

                     0 zycwsr_zy,

                     0 zycwsr_xy,

                     sum(case

               when a.tfbz = '2' and a.fysrglbm = '0301' then

                            -abs(mxxmssje)

               when a.tfbz <> '2' and a.fysrglbm = '0301' then

                            abs(mxxmssje)

                         end) mzghsr,

                     sum(case

              when a.tfbz = '2' and a.fysrglbm = '0301' and

              coalesce(b.lcyxlxbm, '01') not in ('01', '03') then

                            -abs(mxxmssje)

              when a.tfbz <> '2' and a.fysrglbm = '0301' and

               coalesce(b.lcyxlxbm, '01') not in ('01', '03') then

                            abs(mxxmssje)

                         end) mzghsr_zy,

                     sum(case

               when a.tfbz = '2' and a.fysrglbm = '0301' and

               coalesce(b.lcyxlxbm, '01') in ('01', '03') then

                            -abs(mxxmssje)

               when a.tfbz <> '2' and a.fysrglbm = '0301' and

                coalesce(b.lcyxlxbm, '01') in ('01', '03') then

                            abs(mxxmssje)

                         end) mzghsr_xy,

                     sum(case

                 when a.tfbz = '2' and a.fysrglbm = '04' then

                            -abs(mxxmssje)

                  when a.tfbz <> '2' and a.fysrglbm = '04' then

                            abs(mxxmssje)

                         end) mzzcsr,

                     sum(case

             when a.tfbz = '2' and a.fysrglbm = '04' and

              coalesce(b.lcyxlxbm, '01') not in ('01', '03') then

                            -abs(mxxmssje)

                when a.tfbz <> '2' and a.fysrglbm = '04' and

                 coalesce(b.lcyxlxbm, '01') not in ('01', '03') then

                            abs(mxxmssje)

                         end) mzzcsr_zy,

                     sum(case

                when a.tfbz = '2' and a.fysrglbm = '04' and

               coalesce(b.lcyxlxbm, '01') in ('01', '03') then

                            -abs(mxxmssje)

                   when a.tfbz <> '2' and a.fysrglbm = '04' and

                  coalesce(b.lcyxlxbm, '01') in ('01', '03') then

                            abs(mxxmssje)

                         end) mzzcsr_xy,

                     sum(case

                when a.tfbz = '2' and a.fysrglbm = '09' then

                            -abs(mxxmssje)

                when a.tfbz <> '2' and a.fysrglbm = '09' then

                            abs(mxxmssje)

                         end) mzsssr,

                     sum(case

                when a.tfbz = '2' and a.fysrglbm = '06' then

                            -abs(mxxmssje)

                  when a.tfbz <> '2' and a.fysrglbm = '06' then

                            abs(mxxmssje)

                         end) mzhysr,

                     sum(case

          when a.tfbz = '2' and substr(a.fysrglbm, 1, 2) = '99' then

                            -abs(mxxmssje)

          when a.tfbz <> '2' and substr(a.fysrglbm, 1, 2) = '99' then

                            abs(mxxmssje)

                         end) mzqtsr,

                     0 zysssr,

                     0 zyhysr,

                     0 zyqtsr,

                     0 zyhlsr,

                     0 zyhlsr_zy,

                     0 zyhlsr_xy,

                     0 zyzcsr,

                     0 zyzcsr_zy,

                     0 zyzcsr_xy,

                     sum(case

          when a.tfbz = '2' and substr(a.fysrglbm, 1, 2) = '90' then

                            -abs(mxxmssje)

           when a.tfbz <> '2' and substr(a.fysrglbm, 1, 2) = '90' then

                            abs(mxxmssje)

                         end) as clfsr,

                     sum(case

           when a.tfbz = '2' and substr(a.fysrglbm, 1, 2) = '90' and

          coalesce(b.lcyxlxbm, '01') in ('01', '03') then

                            -abs(mxxmssje)

          when a.tfbz <> '2' and substr(a.fysrglbm, 1, 2) = '90' and

            coalesce(b.lcyxlxbm, '01') in ('01', '03') then

                            abs(mxxmssje)

                         end) as clfsr_xy,

                     sum(case

          when a.tfbz = '2' and substr(a.fysrglbm, 1, 2) = '90' and

          coalesce(b.lcyxlxbm, '01') not in ('01', '03') then

                            -abs(mxxmssje)

           when a.tfbz <> '2' and substr(a.fysrglbm, 1, 2) = '90' and

           coalesce(b.lcyxlxbm, '01') not in ('01', '03') then

                            abs(mxxmssje)

                         end) as clfsr_zy,

                     sum(case

           when a.tfbz = '2' and substr(a.fysrglbm, 1, 2) = '90' then

                            -abs(mxxmssje)

           when a.tfbz <> '2' and substr(a.fysrglbm, 1, 2) = '90' then

                            abs(mxxmssje)

                         end) as mzclfsr,

                     0 as zyclfsr,

                     sum(case

           when a.tfbz = '2' and substr(a.fysrglbm, 1, 2) = '90' and

           coalesce(b.lcyxlxbm, '01') in ('01', '03') then

                            -abs(mxxmssje)

           when a.tfbz <> '2' and substr(a.fysrglbm, 1, 2) = '90' and

          coalesce(b.lcyxlxbm, '01') in ('01', '03') then

                            abs(mxxmssje)

                         end) as mzclfsr_xy,

                     sum(case

       when a.tfbz = '2' and substr(a.fysrglbm, 1, 2) = '90' and

              coalesce(b.lcyxlxbm, '01') not in ('01', '03') then

                            -abs(mxxmssje)

      when a.tfbz <> '2' and substr(a.fysrglbm, 1, 2) = '90' and

        coalesce(b.lcyxlxbm, '01') not in ('01', '03') then

                            abs(mxxmssje)

                         end) as mzclfsr_zy,

                     0 as zyclfsr_xy,

                     0 as zyclfsr_zy

                from tb_mz_sfmxb_p_r a

                 inner join (select t.ysksptdm,

                                 t.ysksptmc,

                                 t.ghysgh,

                                 t.ghysxm,

                                 t.yljgdm,

                                 t.jzlsh,

                                 t.ysid,

                                 t.lcyxlxbm

                            from tb_mz_ghmxb t

                          ) b

                  on a.yljgdm = b.yljgdm

                 and a.jzlsh = b.jzlsh

               inner join tb_dic_wd_yljgzd jg

                  on a.yljgdm= jg.yljgdm

               inner join tb_dic_wd_wsxzjgzdb qh

                  on jg.xnxzqhdm = qh.xzqhdm

               where a.sfjssj >='20220101'

                 and a.sfjssj <'20220201'

               group by to_char(a.sfjssj,'yyyy') ,

                     extract(quarter from a.sfjssj) ,

                     to_char(a.sfjssj,'yyyymm') ,

                     to_char(a.sfjssj,'yyyy')||extract(week from now()),

                     to_char(a.sfjssj,'yyyymm'),

                        qh.sjjgid,

                        jg.xnxzqhdm,

                        jg.yljgid,

                        jg.wsjglbdm,

                        jg.jglsgxdm,

                        a.kdksptdm,

                        a.kdysid,

                        a.kdysbh,

                        a.kdysxm;

  1. 排序过滤取数测试

insert into tb_mz_sfmxb_500_sort(BRWYID,YLJGDMID,YLJGDM,JZLSH,SFMXID,BTFMXID,TFBZ,SFCJBM,YZMXID,FYSRGLBM,FYFSSJ,SYJSID,SFJSSJ,SFXMBZBM,MXXMBM,MXXMMC,MXXMDW,XMFLBM,XMFLMC,MXXMDJ,MXXMSL,MXXMYSJE,MXXMSSJE,RKBZ,YLYL1,YLYL2,XGBZ,JLGXSJ,KDKSID,KDKSMC,KDKSPTID,KDKSPTDM,KDKSPTMC,KDYSID,KDYSBH,KDYSXM,ZXKSID,ZXKSBM,ZXKSMC,ZXKSPTID,ZXKSPTDM,ZXKSPTMC,ZXRYID,ZXRYBH,ZXRYXM,SFXMLBBM,KDKSBM,FYSRGLMC)

select BRWYID,YLJGDMID,YLJGDM,JZLSH,SFMXID,BTFMXID,TFBZ,SFCJBM,YZMXID,FYSRGLBM,FYFSSJ,SYJSID,SFJSSJ,SFXMBZBM,MXXMBM,MXXMMC,MXXMDW,XMFLBM,XMFLMC,MXXMDJ,MXXMSL,MXXMYSJE,MXXMSSJE,RKBZ,YLYL1,YLYL2,XGBZ,JLGXSJ,KDKSID,KDKSMC,KDKSPTID,KDKSPTDM,KDKSPTMC,KDYSID,KDYSBH,KDYSXM,ZXKSID,ZXKSBM,ZXKSMC,ZXKSPTID,ZXKSPTDM,ZXKSPTMC,ZXRYID,ZXRYBH,ZXRYXM,SFXMLBBM,KDKSBM,FYSRGLMC

from (

SELECT  BRWYID,YLJGDMID,YLJGDM,JZLSH,SFMXID,BTFMXID,TFBZ,SFCJBM,YZMXID,FYSRGLBM,FYFSSJ,SYJSID,SFJSSJ,SFXMBZBM,MXXMBM,MXXMMC,MXXMDW,XMFLBM,XMFLMC,MXXMDJ,MXXMSL,MXXMYSJE,MXXMSSJE,RKBZ,YLYL1,YLYL2,XGBZ,JLGXSJ,KDKSID,KDKSMC,KDKSPTID,KDKSPTDM,KDKSPTMC,KDYSID,KDYSBH,KDYSXM,ZXKSID,ZXKSBM,ZXKSMC,ZXKSPTID,ZXKSPTDM,ZXKSPTMC,ZXRYID,ZXRYBH,ZXRYXM,SFXMLBBM,KDKSBM,FYSRGLMC ,row_number() over(partition by  yljgdm,sfmxid order by jlgxsj desc) row_num from ( SELECT  * from tb_mz_sfmxb_p_r a where a.sfjssj>='2022-01-01'

                    and a.sfjssj<'2022-02-06'

   ) max GROUP BY  BRWYID,YLJGDMID,YLJGDM,JZLSH,SFMXID,BTFMXID,TFBZ,SFCJBM,YZMXID,FYSRGLBM,FYFSSJ,SYJSID,SFJSSJ,SFXMBZBM,MXXMBM,MXXMMC,MXXMDW,XMFLBM,XMFLMC,MXXMDJ,MXXMSL,MXXMYSJE,MXXMSSJE,RKBZ,YLYL1,YLYL2,XGBZ,JLGXSJ,KDKSID,KDKSMC,KDKSPTID,KDKSPTDM,KDKSPTMC,KDYSID,KDYSBH,KDYSXM,ZXKSID,ZXKSBM,ZXKSMC,ZXKSPTID,ZXKSPTDM,ZXKSPTMC,ZXRYID,ZXRYBH,ZXRYXM,SFXMLBBM,KDKSBM,FYSRGLMC

     ) s where row_num=1 ;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/38836.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

17153 班级活动

17153 班级活动 ⭐️难度&#xff1a;简单 &#x1f31f;考点&#xff1a;2023、思维、国赛 &#x1f4d6; &#x1f4da; import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner;public class Main {static int N 10…

Java IO 流:从字节到字符再到Java 装饰者模式(Decorator Pattern),解析与应用掌握数据流动的艺术

在 Java 编程中&#xff0c;IO&#xff08;输入输出&#xff09;流是处理数据输入输出的核心工具。无论是读取文件、网络通信&#xff0c;还是处理用户输入&#xff0c;IO 流都扮演着重要角色。本文将深入探讨 Java IO 流的核心概念、分类、经典代码实例及其应用场景&#xff0…

HTTPS

目录 一 HTTPS是什么 二 加密 三 加密方案 四 CA机构/证书 五 最终方案(对称密钥/非对称密钥/CA证书)和总体流程 一 HTTPS是什么 在应用层存在SSL&#xff0c;TLS(HTTP之下&#xff0c;传输层之上)加密/解密安全协议&#xff0c;如果HTTP经过这个协议&#xff0c;对端也走…

StarRocks 主键(Primary Key)深度解析

一、StarRocks 产品简介 StarRocks 是一款高性能分析型数据库&#xff0c;专为海量数据的实时分析而设计。作为新一代湖仓&#xff08;Lakehouse&#xff09;加速引擎&#xff0c;StarRocks 融合了 MPP 架构和列式存储引擎的优势&#xff0c;能够支持亿级数据秒级查询响应。 …

(学习总结30)Linux 进程优先级、进程切换和环境变量

Linux 进程优先级、进程切换和环境变量 进程优先级基本概念查看系统进程PRI 和 NI 解释进程优先级调整命令行调整进程优先级调整新进程调度优先级命令 nice调整已运行进程调度优先级命令 renice 使用 top 调整进程优先级使用系统调用调整进程优先级 进程的竞争、独立、并行、并…

《Manus学习手册》.pdf(文末附完整版下载地址)

大家好&#xff0c;我是吾鳴。 吾鳴今天要给大家分享的一份比较全面详细的Manus学习手册&#xff0c;该学习手册主要包含Manus产品概述与核心理念、Manus功能与使用场景、Manus技术架构与工作流、Manus案例库与用户实践、邀请码获取与内测信息、Manus与传统AI对比与优势、用户评…

【MySQL】从零开始:掌握MySQL数据库的核心概念(三)

人生碌碌&#xff0c;竞短论长&#xff0c;却不道枯荣有数&#xff0c;得失难量。 前言 这是我自己学习MySQL数据库的第二篇博客总结。后期我会继续把MySQL数据库学习笔记开源至博客上。 上一期笔记是关于MySQL数据库的数据类型&#xff0c;没看的同学可以过去看看&#xff1a…

Web3智能合约与数据交互安全性探讨

Web3智能合约与数据交互安全性探讨 随着区块链技术的飞速发展&#xff0c;Web3的概念已经成为技术圈的热门话题。Web3不仅仅是技术迭代&#xff0c;它代表了一种全新的互联网交互方式&#xff0c;其中智能合约扮演着核心角色。智能合约是自动执行、控制或文档化法律事件和行动…

人工智能赋能山西乡村振兴:智能空间规划与可持续发展

摘要&#xff1a;随着人工智能技术的快速发展&#xff0c;山西乡村振兴面临着从传统农业到智能化现代化转型的重大机遇。本文探讨了人工智能在山西乡村振兴中的具体应用&#xff0c;重点分析了智能空间规划、生态保护与环境治理、产业转型以及基础设施升级的可能路径。文章从数…

QT三 自定义控件

一 自定义控件 现在的需求是这样&#xff1a; 假设我们要在QWidget 上做定制&#xff0c;这个定制包括了关于 一些事件处理&#xff0c;意味着要重写QWidget的一些代码&#xff0c;这是不实际的&#xff0c;因此我们需要自己写一个MyWidget继承QWidget&#xff0c;然后再MyWi…

【C++ 进阶】语句:从基础到实践

目录 一、输入输出体系的范式革命 1.1 C语言的格式化 1.2 C的流抽象革命 二、字符串处理的抽象跃迁 2.1 C语言的字符指针 2.2 C的string类革命 三、结构体到类的类型系统进化 3.1 C语言的结构体局限 3.2 C类的革命性演进 四、基础控制语句差异 4.1 条件语句&#xf…

C语言操作符

&#x1f31f; 各位看官好&#xff0c;我是maomi_9526&#xff01; &#x1f30d; 种一棵树最好是十年前&#xff0c;其次是现在&#xff01; &#x1f680; 今天来学习C语言的相关知识。 &#x1f44d; 如果觉得这篇文章有帮助&#xff0c;欢迎您一键三连&#xff0c;分享给更…

PostgreSQL:语言基础与数据库操作

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

KMP算法

KMP算法 为什么叫做KMP呢。 因为是由这三位学者发明的&#xff1a;Knuth&#xff0c;Morris和Pratt&#xff0c;所以取了三位学者名字的首字母。所以叫做KMP next数组就是一个前缀表&#xff08;prefix table&#xff09;。 前缀表是用来回退的&#xff0c;它记录了模式串与…

3D点云数据处理中的聚类算法总结

1.欧式聚类&#xff1a; 基于点的空间距离&#xff08;欧几里得距离&#xff09;来分割点云&#xff0c;将距离较近的点归为同一簇。 欧式聚类需要的参数&#xff1a;邻域半径R,簇的最小点阈值minPts&#xff0c;最大点数阈值maxPts。 实现效率&#xff1a; O(n * log n) 实现…

WRC世界机器人大会-2024年展商汇总

2024世界机器人大会 时间&#xff1a;2024年8月21日至25日 地点&#xff1a;北京经济技术开发区北人亦创国际会展中心 大会主题&#xff1a;共育新质生产力&#xff0c;共享智能新未来 2024世界机器人博览会亮点纷呈&#xff0c;20余款人形机器人整机将亮相博览会&#xff…

拉取镜像,推送到阿里云镜像仓库

需求背景&#xff1a;在学习k8s&#xff0c;虚拟机无法正常拉取 wangyanglinux/tools:busybox 镜像。 解决办法&#xff1a;将墙外镜像拉到国内&#xff08;阿里云&#xff09;再使用 准备工作需要创建对应的镜像仓库&#xff0c;然后再进行推送 1. 拉取镜像 docker pull …

DeepSeek和Kimi在Neo4j中的表现

以下是2个最近爆火的人工智能工具&#xff0c; DeepSeek:DeepSeek Kimi: Kimi - 会推理解析&#xff0c;能深度思考的AI助手 1、提示词&#xff1a; 你能帮我生成一个知识图谱吗&#xff0c;等一下我会给你一篇文章&#xff0c;帮我从内容中提取关键要素&#xff0c;然后以N…

哈尔滨工业大学DeepSeek公开课人工智能:大模型原理 技术与应用-从GPT到DeepSeek|附视频下载方法

导 读INTRODUCTION 今天继续哈尔滨工业大学车万翔教授带来了一场主题为“DeepSeek 技术前沿与应用”的报告。 本报告深入探讨了大语言模型在自然语言处理&#xff08;NLP&#xff09;领域的核心地位及其发展历程&#xff0c;从基础概念出发&#xff0c;延伸至语言模型在机器翻…

redis解决缓存穿透/击穿/雪崩

文章目录 1.缓存穿透1.1 概念1.2 解决方案1.2.1 缓存空对象1.2.2 布隆过滤 1.2 店铺查询使用缓存穿透解决方案1.2.1 流程 2.缓存雪崩2.1 什么是缓存雪崩&#xff1f;2.2 雪崩解决方案 3.缓存击穿3.1 什么是缓存击穿&#xff1f;3.2解决方案3.2.1 基于互斥锁解决缓存击穿问题&am…