Oracle 【直接加载(sqlldr direct=true)】全方位解析与性能优化[2]

2023-11-16

3.比较direct方式使用并行和非并行选项的性能差异。
数据文件:leo_test.data   100000记录
控制文件:leo_test.ctl
日志文件:leo_test.log
串行直接加载sqlload : sqlldr userid=ls/ls control=leo_test.ctl data=leo_test.data log=leo_test.log direct=true
并行直接加载sqlload : sqlldr userid=ls/ls control=leo_test.ctl data=leo_test.data log=leo_test.log direct=true parallel=true
1.现在演示“串行直接加载”
LS@LEO> select count(*) from leo_test_sqlload;         加载之前
  COUNT(*)
----------
         0
Sun Sep  9 10:58:24 CST 2012                           58:24
[oracle@secdb1 ~]$ sqlldr userid=ls/ls control=leo_test.ctl data=leo_test.data log=leo_test.log direct=true
SQL*Loader: Release 10.2.0.1.0 - Production on Sun Sep 9 10:58:26 2012
Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Load completed - logical record count 100000.
[oracle@secdb1 ~]$ date
Sun Sep  9 10:58:45 CST 2012                          58:45-58:24=21秒  即用时21秒  我这是手算的,一会看看日志里记录的是多少
LS@LEO> select count(*) from leo_test_sqlload;         加载之后
  COUNT(*)
----------
    100000
[oracle@secdb1 ~]$ more leo_test.log
SQL*Loader: Release 10.2.0.1.0 - Production on Sun Sep 9 10:58:26 2012
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Control File:   leo_test.ctl
Data File:      leo_test.data
  Bad File:     leo_test.bad
  Discard File:  none specified
(Allow all discards)
Number to load: ALL
Number to skip: 0
Errors allowed: 50
Continuation:    none specified
Path used:      Direct            【sql*loader采用串行直接加载方式加载数据】
Table LEO_TEST_SQLLOAD, loaded from every logical record.                              加载的表名
Insert option in effect for this table: APPEND                                         追加方式加载数据
TRAILING NULLCOLS option in effect
   Column Name                  Position   Len  Term Encl Datatype                     列名
------------------------------ ---------- ----- ---- ---- ---------------------
START_TIME                          FIRST     *   |       DATE YYYY-MM-DD HH24:MI:SS
END_TIME                             NEXT     *   |       DATE YYYY-MM-DD HH24:MI:SS
PROTOCOL                             NEXT     *   |       CHARACTER
PRIVATE_IP                           NEXT     *   |       CHARACTER
PRIVATE_PORT                         NEXT     *   |       CHARACTER
SRC_IP                               NEXT     *   |       CHARACTER
SRC_PORT                             NEXT     *   |       CHARACTER
DEST_IP                              NEXT     *   |       CHARACTER
DEST_PORT                            NEXT     *   |       CHARACTER
The following index(es) on table LEO_TEST_SQLLOAD were processed:                     并把索引也加载了10万个索引键值
index LS.LEO_INDEX1 loaded successfully with 100000 keys
Table LEO_TEST_SQLLOAD:
  100000 Rows successfully loaded.                                                    成功加载10万行记录
  0 Rows not loaded due to data errors.                                               由于数据错误,0行没有加载
  0 Rows not loaded because all WHEN clauses were failed.                             因为所有条款都失败的时候,0行没有加载
  0 Rows not loaded because all fields were null.                                     因为所有字段都是空的,0行没有加载
  Date cache:
   Max Size:      1000
   Entries :        65
   Hits    :    199935
   Misses  :         0
Bind array size not used in direct path.
Column array  rows :    5000            
Stream buffer bytes:  256000
Read   buffer bytes: 1048576
Total logical records skipped:          0                             跳过逻辑记录数总和0
Total logical records read:        100000                             读取逻辑记录数总和100000
Total logical records rejected:         0                             拒绝逻辑记录数总和0
Total logical records discarded:        0                             丢弃逻辑记录数总和0
Total stream buffers loaded by SQL*Loader main thread:       26
Total stream buffers loaded by SQL*Loader load thread:       17
Run began on Sun Sep 09 10:58:26 2012                                 开始的时间
Run ended on Sun Sep 09 10:58:41 2012                                 结束的时间
Elapsed time was:     00:00:14.70                                     即用时14.7秒  这是机器算的
CPU time was:         00:00:00.38                                     CPU占用0.38秒

2.现在演示“并行直接加载”
并行加载
(1)并行加载和并行insert机制差不多
(2)并行加载可以启动多个并行进程,同时加载多个文件
(3)并行加载可以启动多个并行进程,分拆一个文件加载
LS@LEO> select count(*) from leo_test_sqlload;         加载之前
  COUNT(*)
----------
         0
Sun Sep  9 11:28:13 CST 2012                          28:13
[oracle@secdb1 ~]$ sqlldr userid=ls/ls control=leo_test.ctl data=leo_test.data log=leo_test.log direct=true parallel=true
SQL*Loader: Release 10.2.0.1.0 - Production on Sun Sep 9 11:28:14 2012
Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Load completed - logical record count 100000.
[oracle@secdb1 ~]$ date
Sun Sep  9 11:28:28 CST 2012                          28:28-28:13=15秒  即用时15秒  我这是手算的,一会看看日志里记录的是多少
LS@LEO> select count(*) from leo_test_sqlload;        加载之后
  COUNT(*)
----------
    100000
[oracle@secdb1 ~]$ more leo_test.log
SQL*Loader: Release 10.2.0.1.0 - Production on Sun Sep 9 11:28:14 2012
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Control File:   leo_test.ctl
Data File:      leo_test.data
  Bad File:     leo_test.bad
  Discard File:  none specified
(Allow all discards)
Number to load: ALL
Number to skip: 0
Errors allowed: 50
Continuation:    none specified
Path used:      Direct - with parallel option.             【sql*loader采用并行直接加载方式加载数据】
Table LEO_TEST_SQLLOAD, loaded from every logical record.   加载的表名
Insert option in effect for this table: APPEND              追加的方式加载数据
TRAILING NULLCOLS option in effect
   Column Name                  Position   Len  Term Encl Datatype                      列名
------------------------------ ---------- ----- ---- ---- ---------------------
START_TIME                          FIRST     *   |       DATE YYYY-MM-DD HH24:MI:SS
END_TIME                             NEXT     *   |       DATE YYYY-MM-DD HH24:MI:SS
PROTOCOL                             NEXT     *   |       CHARACTER
PRIVATE_IP                           NEXT     *   |       CHARACTER
PRIVATE_PORT                         NEXT     *   |       CHARACTER
SRC_IP                               NEXT     *   |       CHARACTER
SRC_PORT                             NEXT     *   |       CHARACTER
DEST_IP                              NEXT     *   |       CHARACTER
DEST_PORT                            NEXT     *   |       CHARACTER

Table LEO_TEST_SQLLOAD:
  100000 Rows successfully loaded.                                                      成功加载10万行记录
  0 Rows not loaded due to data errors.                                                 由于数据错误,0行没有加载
  0 Rows not loaded because all WHEN clauses were failed.                               因为所有条款都失败的时候,0行没有加载
  0 Rows not loaded because all fields were null.                                       因为所有字段都是空的,0行没有加载
  Date cache:
   Max Size:      1000
   Entries :        65
   Hits    :    199935
   Misses  :         0
Bind array size not used in direct path.
Column array  rows :    5000
Stream buffer bytes:  256000
Read   buffer bytes: 1048576
Total logical records skipped:          0                                               跳过逻辑记录数总和0
Total logical records read:        100000                                               读取逻辑记录数总和100000
Total logical records rejected:         0                                               拒绝逻辑记录数总和0
Total logical records discarded:        0                                               丢弃逻辑记录数总和0
Total stream buffers loaded by SQL*Loader main thread:       26
Total stream buffers loaded by SQL*Loader load thread:       17
Run began on Sun Sep 09 11:28:14 2012                            开始的时间
Run ended on Sun Sep 09 11:28:24 2012                            结束的时间
Elapsed time was:     00:00:09.18                                即用时9.18秒  这是机器算的
CPU time was:         00:00:00.42                                CPU占用0.38秒
小结:从时间效率上看“并行直接加载”比“串行直接加载”的效率要高,但我们都知道“并行直接加载”如果表中有索引会导致加载失败,因为oracle不能一边并行一边维护索引的完整性。

4.直接加载对约束性索引和非约束型索引的影响。
一、条件
(1)现在我们使用sql*load来加载100000条数据
(2)加载的leo_test_sqlload表上有索引
二、实验
1.非约束性索引,直接加载在加载完成后会维护索引的完整性
$ cat leo_test.data | wc -l                              检查数据文件内的记录数10万条,这就是我们要加载的数据
100000
$ cat leo_test.ctl                                       控制文件内容
LOAD   DATA
INFILE '/home/oracle/leo_test.data'                      数据源
APPEND INTO   TABLE leo_test_sqlload                     加载数据的表
FIELDS   TERMINATED   BY '|'                             文本数据的分隔符
TRAILING   NULLCOLS
(START_TIME DATE 'YYYY-MM-DD HH24:MI:SS',END_TIME DATE 'YYYY-MM-DD HH24:MI:SS',PROTOCOL,PRIVATE_IP,PRIVATE_PORT
,SRC_IP,SRC_PORT,DEST_IP,DEST_PORT)                      表中字段的名
                        
LS@LEO> desc leo_test_sqlload;                           表的结构
Name                                      Null?    Type
----------------------------------------- -------- ----------------------------
START_TIME                                         DATE
END_TIME                                           DATE
PROTOCOL                                           VARCHAR2(20)
PRIVATE_IP                                         VARCHAR2(20)
PRIVATE_PORT                                       VARCHAR2(20)
SRC_IP                                             VARCHAR2(20)
SRC_PORT                                           VARCHAR2(20)
DEST_IP                                            VARCHAR2(20)
DEST_PORT                                          VARCHAR2(20)
LS@LEO> select index_name,status from user_indexes where table_name='LEO_TEST_SQLLOAD';   现在表上没有索引,我们定义一个索引
no rows selected
LS@LEO> create index leo_index1 on leo_test_sqlload(start_time);                          我们在start_time字段添加了索引
Index created.
LS@LEO> select index_name,status from user_indexes where table_name='LEO_TEST_SQLLOAD';   索引已经生效
INDEX_NAME                     STATUS
------------------------------ --------
LEO_INDEX1                     VALID
[oracle@secdb1 ~]$ sqlldr userid=ls/ls control=leo_test.ctl data=leo_test.data log=leo_test.log direct=true  直接加载
SQL*Loader: Release 10.2.0.1.0 - Production on Sun Sep 9 09:18:13 2012
Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Load completed - logical record count 100000.
LS@LEO> select count(*) from leo_test_sqlload;                                            已经加载了10万条记录
  COUNT(*)
----------
    100000
LS@LEO> select index_name,status from user_indexes where table_name='LEO_TEST_SQLLOAD';    索引状态还是有效的
INDEX_NAME                     STATUS
------------------------------ --------
LEO_INDEX1                     VALID
小结:非约束索引下,直接加载会维护索引的完整性,在数据加载入库后索引还是有效的。

2.约束性索引【主键】,直接加载依然会把数据加载入库,但索引会失效unusable,并且在日志中没有提示,必须手工rebuild重新建立
数据文件:leo_test1.data
控制文件:leo_test1.ctl
日志文件:leo_test1.log
sqlload : sqlldr userid=ls/ls control=leo_test1.ctl data=leo_test1.data log=leo_test1.log direct=true
LS@LEO> desc leo_test_sqlload1                      表结构
Name                                      Null?    Type
----------------------------------------- -------- ----------------------------
START_TIME                                         DATE
END_TIME                                           DATE
PROTOCOL                                           VARCHAR2(20)
PRIVATE_IP                                         VARCHAR2(20)
PRIVATE_PORT                                       VARCHAR2(20)
SRC_IP                                             VARCHAR2(20)
SRC_PORT                                           VARCHAR2(20)
DEST_IP                                            VARCHAR2(20)
DEST_PORT                                          VARCHAR2(20)
LS@LEO> select index_name,status from user_indexes where table_name='LEO_TEST_SQLLOAD1';    没有主键,我们现在建一个
no rows selected
LS@LEO> alter table leo_test_sqlload1 add constraint pk_leo_test1 primary key(dest_port);   创建主键
Table altered.
LS@LEO> select index_name,status from user_indexes where table_name='LEO_TEST_SQLLOAD1';    主键已经生效
INDEX_NAME                     STATUS
------------------------------ --------
PK_LEO_TEST1                   VALID
LS@LEO> select count(*) from leo_test_sqlload1;                                             表中没有数据我们开始加载
  COUNT(*)
----------
         0
[oracle@secdb1 ~]$ sqlldr userid=ls/ls control=leo_test1.ctl data=leo_test1.data log=leo_test1.log direct=true
SQL*Loader: Release 10.2.0.1.0 - Production on Sun Sep 9 10:07:49 2012
Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Load completed - logical record count 100.
LS@LEO> select * from leo_test_sqlload1 where rownum <= 6;
START_TIME          END_TIME            PROTOCOL  PRIVATE_IP PRIVATE_PORT SRC_IP       SRC_PORT  DEST_IP     DEST_PORT
------------------- ------------------- -------------------- ------------ ------------ --------------------  ----------
2012-08-08 20:59:54 2012-08-08 21:00:28 6         2886756061 1111          3395517721  45031     3419418065  80
2012-08-08 21:00:26 2012-08-08 21:00:28 6         2886900807 1111          395507143   51733     3658060738  80
2012-08-08 20:59:55 2012-08-08 21:00:28 6         2886917742 1111          3395507159  43516     2071873572  80
2012-08-08 20:59:55 2012-08-08 21:00:28 6         2886917742 1111          3395507159  43534     2071873572  80
2012-08-08 20:59:55 2012-08-08 21:00:28 6         2886917742 1111          3395507159  43523     2071873572  80
2012-08-08 21:00:14 2012-08-08 21:00:28 6         2886832065 1111          3395507109  51442     2099718013  80
            
6 rows selected.
我们已经加载了100条记录,dest_port列值都是80,违背了主键约束,说明索引失效
LS@LEO> select index_name,status from user_indexes where table_name='LEO_TEST_SQLLOAD1';    索引已经失效
INDEX_NAME                     STATUS
------------------------------ --------
PK_LEO_TEST1                   UNUSABLE
结论:在OLAP系统中实时表不应该使用约束【因为是海量数据重复是正常的】,在维度表中可以使用约束。

3.如果使用并行+直接加载数据的话,如果表中有索引,会导致加载失败,可以使用skip_index_maintenance选项“跳过索引维护”,来到达数据加载的目的,但是此时索引会无效unusable,必须手工rebuild重新建立
重新搭建环境
LS@LEO> truncate table leo_test_sqlload1;
Table truncated.
LS@LEO> alter table leo_test_sqlload1 drop constraint pk_leo_test1;
Table altered.
LS@LEO> alter table leo_test_sqlload1 add constraint pk_leo_test1 primary key(dest_port);
Table altered.
[oracle@secdb1 ~]$ sqlldr userid=ls/ls control=leo_test1.ctl data=leo_test1.data log=leo_test1.log direct=true parallel=true
SQL*Loader: Release 10.2.0.1.0 - Production on Sun Sep 9 10:29:42 2012
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
SQL*Loader-951: Error calling once/load initialization                     
ORA-26002: Table LS.LEO_TEST_SQLLOAD1 has index defined upon it.           表上有索引定义导致加载失败
[oracle@secdb1 ~]$ sqlldr userid=ls/ls control=leo_test1.ctl data=leo_test1.data log=leo_test1.log direct=true parallel=true
skip_index_maintenance=true
SQL*Loader: Release 10.2.0.1.0 - Production on Sun Sep 9 10:32:51 2012     我们跳过索引维护成功加载100条记录
Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Load completed - logical record count 100.   
LS@LEO> select count(*) from leo_test_sqlload1;
  COUNT(*)
----------
       100
LS@LEO> select index_name,status from user_indexes where table_name='LEO_TEST_SQLLOAD1';     索引此时是无效状态
INDEX_NAME                     STATUS
------------------------------ --------
PK_LEO_TEST1                   UNUSABLE
小结:这就告诉我们了并行就是切片,一边切片一边维护索引完整性是做不到的,我们只能在加载数据后重新建立索引。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Oracle 【直接加载(sqlldr direct=true)】全方位解析与性能优化[2] 的相关文章

  • 老域名扫描软件-老域名采集挖掘工具

    老域名挖掘软件 老域名挖掘软件是一种可以帮助用户发现已过期或未续费的老域名的工具 以下是该软件主要特点 大数据分析 该软件通过大数据分析技术 深度挖掘互联网上的闲置老域名 发现可用的未续费或已过期域名 从而为用户提供更多的域名选择 全网搜索
  • Android studio 3.2 升级详解及Gradle配置

    一直在使用Android studio 2 3 1版本 因为工作开发使用的都是这个版本 所以在经历了N次提示更新后 依旧还是没有升级 直到今天终于忍不住了 因为Android Studio 3 2版本在这个月发布了 增加了很多新特性 具体参
  • halcon 测量

    dev set draw margin dev set line width 3 创建包含了检测的边缘ROI区域 注意所画的矩形区域的长轴要与检测边界垂直 Row 599 5 Column 1073 5 Phi rad 87 0643 Le
  • oracle number17,2018-10-17 oracle 常用语法函数总结

    1 Oracle正则匹配使用 PS 这条SQL可以通过正则匹对查询一下 表A的字段a是否有非数字的数据 有时候数据表的一些字段是varchar类型的 如果sql里用to number的话 就肯定会报无效数字的错误 select from 表
  • VS2008下的配置opencv

    openCV 2 2以及2 2以下版本 不自带编译好的dll动态库和lib静态库文件 其中的bin和lib都是未经编译的 还不能直接使用的 因此需要进行下载CMake来对于Opencv源代码进行重新编译 才能得到最终的dll和lib库文件
  • 本人亲自整理的极客时间设计模式之美下部的硬核笔记(残缺版)最近加班太多,搞不了太多,只能尽量了xd们

    设计模式之美 下 https www yuque com zcming123 uygxde cbwnad 这位猿 三连 再走吧 以下内容是为了让搜索引擎 检测到这篇文章 要阅读体验 请点击上面的连接 点击我 去我的语雀看 对了 我看到语雀那
  • Spring Boot 基础知识

    概述 什么是 Spring Boot Spring Boot 是 Spring 开源组织下的子项目 是 Spring 组件一站式解决方案 主要是简化了使用 Spring 的难度 简省了繁重的配置 提供了各种启动器 开发者能快速上手 Spri
  • STM32F103系列定时器通道对应IO汇总

    1 通用定时器 TIM2 Default Remap CH1 ETR PA0 PA15 CH2 PA1 PB3 CH3 PA2 PB10 CH4 PA3 PB11 TIM3 Default Remap CH1 PA6 PB4 PC6 CH2
  • 在Windows服务器上搭建Nuget私人服务器(超~详细)

    在Windows服务器上搭建Nuget私人服务器 一 使用VS2017 VS2019新建空白解决方案 操作如图 步骤一 这里以VS2019为例 打开VS2019 选择 创建新项目 选项 步骤二 选择 空白解决方案 点击 下一步 步骤三 填写
  • React中setState()更新状态的两种写法及相关问题

    1 setState updater callback 函数式的setState updater是一个返回stateChange对象的函数 如下代码所示 它接收的state和props都保证为最新 updater的返回值会与state进行浅
  • 关于Socket编程中的inet_ntop、inet_pton和inet_ntoa、inet_addr

    VS2013中调试Socket代码时 遇到了点小问题 问题代码为 cpp view plain copy inet ntoa addrClient sin addr 生成错误消息为 plain view plain copy error C
  • Spark中的基本概念

    Spark中的基本概念 1 基本概念 1 1 RDD 弹性分布式数据集 1 2 DAG 有向无环图 1 3 Partition 数据分区 1 4 NarrowDependency 窄依赖 1 5 ShuffleDependency 宽依赖
  • 互斥锁,自旋锁,原子操作的原理,区别和实现

    一 互斥锁 原理 互斥锁属于sleep waiting类型的锁 例如在一个双核的机器上有两个线程 线程A和线程B 它们分别运行在Core0和Core1上 假设线程A想要通过pthread mutex lock操作去得到一个临界区的锁 而此时
  • windows系统软件开发平台配置

    1 mongodb安装及配置 参考文档 https blog csdn net xuforeverlove article details 88344213 1 1 临时启动mongodb服务 a 打开mongodb安装文件夹 进入并复制d
  • 【七夕活动精选】致你的七夕礼物——3D Heart,跳动的 3D 爱心

    程序效果很简单 是一颗跳动的爱心 在心脏下面有一行小字写着 七夕快乐 按住鼠标左键并拖动可以让它旋转起来 按住右键可以让这颗心暂时停止跳动 执行效果如下 完整的源代码如下 程序名称 致你的七夕礼物 3D Heart 编译环境 Visual
  • sqli-labs 41——65关攻略

    Less 41 基于错误的POST型单引号字符型注入 与之前讲的Less 40的区别 s q l S E L E C T F R O M u s e r s W H E R E i d sql SELECT FROM users WHERE
  • 2023年华中杯选题人数公布

    2023年华中杯选题人数公布 经过一晚上代码的编写 论文的写作 C题完整版论文已经发布 注 蓝色字体为说明备注解释字体 不能出现在大家的论文里 黑色字体为论文部分 大家可以根据红色字体的注记进行摘抄 对应的详细的写作视频教程 争取1号晚上发
  • [机器学习笔记] 支持向量机SVM 和逻辑回归LR的异同

    参考 https www cnblogs com zhizhan p 5038747 html 为什么把SVM和LR放在一起进行比较 一是因为这两个模型应用广泛 二是因为这两个模型有很多相同点 在使用时容易混淆 不知道用哪个好 特别是对初学
  • 性能测试-压力测试-jmeter简单实战

    文章目录 一 压力测试 1 性能指标 响应时间 RT HPS Hits Per second TPS Transaction Per second QPS Query Per second 最大响应时间 Max Response Time
  • oracle如何提高数据库的性能和可用性

    进行数据库优化 通过定期执行优化操作 如维护索引 调整内存参数 优化 SQL 语句等 可以提高数据库的性能和可用性 执行数据库碎片整理 通过执行表空间碎片整理 索引碎片整理 表碎片整理等操作 可以优化数据库的碎片 提高数据存储效率 执行数据

随机推荐

  • ruoyi对数据二次处理后分页失效

    业务场景 正常业务场景下 在service层只做一次查询就能满足需求 若需要分页 只需在Controller层添加继承BaseController 使用startPage 和getDataTable 即可 业务需求存在需要对查询的数据做二次
  • SpringCloud 服务保护机制Hystrix

    微服务高可用技术 大型复杂的分布式系统中 高可用相关的技术架构非常重要 高可用架构非常重要的一个环节 就是如何将分布式系统中的各个服务打造成高可用的服务 从而足以应对分布式系统环境中的各种各样的问题 避免整个分布式系统被某个服务的故障给拖垮
  • Unity中的C#与C++交互

    参考 Unity Manual Low level Native Plugin Interface 源码demo 演示了一个渲染三角形的例子 C 部分代码实现了对底层API的封装以及核心功能实现 RenderingPlugin cpp中定义
  • 记一次Gradle构建项目Cannot locate tasks that match ‘:xxxx‘ as task ‘xxx‘ not found in root project ‘xxxx‘错误

    问题 在使用Gradle构建项目时 遇见了一个奇怪的问题 运行报错如下 Cannot locate tasks that match xxxx as task xxx not found in root project xxxx 思路 单看
  • Linux基础学习笔记之——软件安装:源码与Tarball

    软件安装 源码与Tarball 1 开放源码的软件安装与升级简介 Linux 上面的软件几乎都是经过 GPL 的授权 所以每个软件几乎均提供源码 并且你可以自行修改该程序代码 以符合个人的需求 这就是开放源码的优点 1 1 什么是开放源码
  • 腾讯事务处理技术验证系统3TS-Coo模板安装文档&&说明文档(小白向,简单轻松就能上手)

    本篇文章将详细说明3TS Coo模板的安装和使用 帮助您快速上手项目 第一部分是简单的基础Docker相关概念 精炼的几句小白话快速理解即可 第二部分是快速安装项目环境的安装文档 简单几行命令搞定 小白也能轻松上手 第三部分是对于已经安装的
  • jupter notebook代码无法执行,出现in[*]的解决办法

    In 数字 代表已经执行的代码 其中数字代表可执行的代码编号 解决办法 点击Kernel中的Restart Run all 重新执行全部代码 系统会从In 1 依次执行 并且报错 我们一直改错即可 直至In 变为In 数字 即可
  • 使用Python爬虫和数据可视化,揭示人口大国历年人数的变迁

    前言 人口大国通常在全球人口排名中位居前列 其人口数量远远超过其他国家 而印度和中国这两个国家的人口数量均已经超过14亿 而当前全球的人口总数也不过刚刚突破80亿而已 妥妥的天花板级别存在 或许是中国和印度在人口方面的表现太过 耀眼 以至于
  • 「学习笔记」torchvision.datasets.MNIST 参数解读/中文使用手册

    DataLoader使用手册 参数解读 PyTorch torch utils data DataLoader 中文使用手册 官方手册如下 torchvision datasets MNIST root train True transfo
  • vue开发:前端项目模板

    简介 vue cli创建vue项目 整合vuex vue router axios element ui 项目模板下载地址 创建项目 Java 前端项目合集 使用vue cli创建项目 功能选择 Babel Router vuex Lint
  • HJ67 24点游戏算法

    问题描述 给出4个1 10的数字 通过加减乘除 得到数字为24就算胜利 输入 本题含有多组样例输入 4个1 10的数字 数字允许重复 但每个数字仅允许使用一次 测试用例保证无异常数字 输出 true or false 示例 输入 7 2 1
  • CRC的基本原理详解

    CRC Cyclic Redundancy Check 被广泛用于数据通信过程中的差错检测 具有很强的 检错能力 本文详细介绍了CRC的基本原理 并且按照解释通行的查表算法的由来的思路介绍 了各种具体的实现方法 1 差错检测 数据通信中 接
  • mybatisplus多条件并列复杂查询

    在使用mybatisPlus时 有时需要一些负责的sql条件拼接 这时 我们可以利用 QueryWrapper的and Consumer consumer 和 or Consumer consumer 来对条件进行拼接 查询条件拼接 例如
  • 配置AOP时报错:java.lang.ClassCastException: com.sun.proxy.$Proxy2 cannot be cast to

    报错 Exception in thread main java lang ClassCastException com sun proxy Proxy2 cannot be cast to 看报错信息 显示的是动态代理生成的类无法转换到我
  • navigator.geolocation.getCurrentPosition 获取位置偏移

    navigator geolocation getCurrentPosition function position 获取当前位置成功返回 经度 coords longitude 纬度 coords latitude 准确度 coords
  • 前端Vue模板页面(组件最全)

    https github com PanJiaChen vue element admin 这里是一个真诚的 青年技术交流QQ群 761374713 不管你是大学生 社畜 想学习变成的其他人员 欢迎大家加入我们 一起成长 一起进步 真诚的欢
  • Centos7 安装 Docker Compose

    目录 一 Docker Compose 简介 二 环境准备 三 安装 四 验证 五 问题解决 一 Docker Compose 简介 Compose 是用于定义和运行多容器 Docker 应用程序的工具 通过 Compose 您可以使用 Y
  • 九、JDK1.8—并行流与串行流

    并行流 并行流就是把一个内容分成多个数据块 并用不同的线程分 别处理每个数据块的流 Java 8 中将并行进行了优化 我们可以很容易的对数据进行并 行操作 Stream API 可以声明性地通过 parallel 与 sequential
  • web自动化测试工具之Selenium的使用

    Selenium的使用 Selenium 概述 工作原理 应用场景 安装浏览器驱动 基本使用 安装Selenium模块 注意点 使用分析 代码实现 常见方法 driver对象 定位标签元素与获取标签对象 获取文本内容与属性值 使用无界面浏览
  • Oracle 【直接加载(sqlldr direct=true)】全方位解析与性能优化[2]

    3 比较direct方式使用并行和非并行选项的性能差异 数据文件 leo test data 100000记录 控制文件 leo test ctl 日志文件 leo test log 串行直接加载sqlload sqlldr userid