Oracle问题记录
本贴用于记录开发中遇到的OracleSQL问题。
Null 值判断问题
问题场景: 获取字段A不等于‘1’的数据数量。(字段A,有可能为null)
结果发现count后的数量小于实际数量,后来发现是 null 不参与 <> 比较,需要对null做处理。
1234-- 错误select count(1) from table_name where 字段A <> '1';-- 正确select count(1) from table_name where nvl(字段A,'0') <> '1';
Oracle High Water Mark问题
公司写SQL时遇到一个奇怪的问题,往表中频繁插入和删除大量数据,几次操作后,使用Select查询(表中没数据)特别慢,后得知是高水位线的问题。
该问题已通过: truncate table tableName语句解决。
本想写篇文章详细记录一下的,现在懒得写的,简单概括下。
High Water Mark(简称HWM),翻译为中文就是高水位线。
高水位线就是标识段(segment)中已使用过的数据块和未使用的数据块的二者的交界线。
随着不断的往数据库中插入数据,HWM会越来越高。但是,使用delete语句删除数据时,HWM不会下降。
原则上HWM只会上升,不会下降。
初始时的HWM
插入数据后的HWM
删除(delete语句)数据后的HWM
Oracle中执行Select操作时会扫描HWM下的所有数据块,所以虽然数据被删掉了,但是HWM线并没有下降,扫描就会很慢,相对应着查询也会很慢。
为了避免出现高水位线的问题,在删除数据时能使用truncate的情况下,尽量使用truncate。truncate和delete的不同自行百度。
参考:
https://www.codercto. ...
保姆级微信双开教程
保姆级微信双开教程
不知道大家是不是和我一样,两个微信账号,一个用于工作,一个用于私人。
一般来说,日常生活中使用的登录微信的设备也就3种,PC、Android、IOS。这三种设备中,Android经过各种厂商对OS的优化后,基本上都已经实现了微信双开甚至多开的功能,只有PC和IOS,默认还没有支持微信双开的功能,所以本篇文章就是为了记录,PC和IOS,怎么进行微信双开(保姆级别,有手就可以)。
好久没更新了,水一篇….
PC
设备: 收破烂都不要的神船笔记本
系统: 某国际大厂出的Windows11
微信版本: 新鲜出炉的3.8.0.41
第一步,创建批处理脚本文件桌面右键,新建文本文档,并打开
在打开的文本文档中输入一下代码并替换微信安装路径为自己的PC设备上的微信安装的路径
12345# 启动第一个微信start /d "微信安装路径" WeChat.exe# 启动第二个微信start /d "微信安装路径" WeChat.exeexit
不知道自己的PC上的微信安装设备的可以右键桌面上的微信图标,打开文件所在位置,打开的文件路径就 ...
使用XShell连接Vm虚拟机中安装的Centos
1、配置网络模式配置虚拟机中的Centos系统的网络适配器
2、配置VM的网络虚拟机VM软件→编辑→虚拟网络编辑器
子网IP不一定要使用10.0.0.0,此处使用10.0.0.0是为了避免和其他IP冲突。
网关IP需要在子网IP网段中。
3、配置V8虚拟网络适配器
IP地址需要在第二步骤配置的子网IP网段中。
4、配置Centos静态IP启动服务器,使用ip addr查看网卡名称
比如我的网卡名称就叫做ens33,并且大部分机器都是ens33
进入到/etc/sysconfig/network-scripts,使用vi命令编辑ifcf-ens33文件。
如下
1234567891011121314151617181920YPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stab ...
使用XShell连接Vm虚拟机中安装的UbuntuServer20.04
1、配置网络桥接模式配置虚拟机中的Ubuntu系统的网络适配器
2、配置VM的网络虚拟机VM软件→编辑→虚拟网络编辑器
子网IP不一定要使用10.0.0.0,此处使用10.0.0.0是为了避免和其他IP冲突。
网关IP需要在子网IP网段中。
3、配置V8虚拟网络适配器
IP地址需要在第二步骤配置的子网IP网段中。
4、配置Ubuntu静态IP进入到/etc/netplan路径,使用vim命令编辑yaml网络配置文件。
红框为网络配置文件,建议在修改网络配置文件之前,对源文件进行备份。
内容如下
123456789network: ethernets: ens33: dhcp4: false addresses: [10.0.0.110/24] gateway4: 10.0.0.1 nameservers: addresses: [114.114.114.114,8.8.8.8] version: 2
主要修改一下几个配置
dhcp4: false:不使用dhcp服务(动态IP分配)
addresses ...
VsCode下的Remote-SSH插件的使用
0、前言
众所周知,Vs Code是一个非常NB的编辑器,它可以通过安装不同的插件,满足几乎所有的开发需求。最近了解到微软之前推出过一个Remote-SSH的插件,通过该插件可以在Vs Code上通过SSH连接Linux服务器进行终端操作或者文件编辑。所以本篇博客就是记录下怎么在Vs Code里面通过Remote-SSH插件连接Linux服务器并进行终端操作和文件编辑。
系统环境:
操作系统:Windows 10
服务器:Centos 7 64Bit
软件:Vs Code 1.61.2
1、安装Remote-SSH插件打开Vs Code,插件商店搜索Remote-SSH安装即可
2、配置Linux服务器连接
选择左侧小电脑,然后点击小齿轮,在弹出的选项中选择第一个即可。如图,第一个就表示将会把远程Linux服务器的连接地址以及用户信息保存在C:\Users\admin\.ssh\config路径下。
Host:主机名称
HostName:主机地址
User:用户
输入主机信息并保存后,在左侧列表就会出现配置的主机。
3、连接远程服务器点击按钮连接服务器,打开新的窗口
...
Win10自带OpenSSH的使用
0、前言
昨天写了一篇文章,记录了使用Vs Code的Remote-SSH的插件连接远程Linux服务器的方法。后来觉得还是很麻烦,需要先装Vs Code其次又要装Remote-SSH插件。今天网上查了查,其中有一篇文章提到,微软官方在2018年4月份更新的Win10版本中加入了正式版的OpenSSH,并默认安装在Win10系统中。所以本篇文章就是为了记录怎么在Win10默认环境下,使用OpenSSH远程连接Linux服务器。
系统环境:
操作系统:Windows 10 21H1
服务器:Centos 7 64Bit
1、检查是否安装有OpenSSH
打开系统的设置页面,可以使用快捷键Win+I打开。
应用—可选功能
查看是否安装
如果已安装中列表中没有OpenSSH,则点击添加功能按钮进行添加。
2、连接服务器
三种方式,但其本质是一致的。
连接命令:ssh user@host,默认端口为22,如要指定端口号,则ssh user@host -p port
1、运行窗口连接Win+R打开运行窗口,输入连接命令,点击确定即可。
2、CMD命令窗口连接
3 ...
Redis事务的简单使用
问题:如果Java代码出现了异常,怎么对Redis进行回滚?
一次和朋友聊天聊到了这个问题,当时第一想法就是,try-catch异常,在catch里对之前插入到Redis的数据进行删除操作。但是接下来又有一个问题:如果在删除时报错了怎么办?
什么是事务?学过关系型数据库的应该都知道,事务有一个ACID原则,即事务的四大特性:
atomicity(原子性):一个事务是一个不可分割的工作单位,事务中包括的操作要么都做,要么都不做
consistency(一致性):事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
isolation(隔离性):一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
durability(持久性):指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。
上面的ACID指的是关系型数据库,但是Redis作为一个NoSQL(非关系型数据库),它的事务肯定是和关系型数据库的不一样。
Redis的事务很简单,简单到它的本质其实就是一个队列。流 ...
基于Docker在Centos上安装Oracle数据库
Oracle数据库的占用太大,不想安装在物理机上,毕竟用的也不多,所以想把它装在虚拟机中的Centos服务器上,但是安装Linux版的太麻烦,所以为了简化安装过程,选择了在Docker中安装。
安装Docker
这一步没什么好说的,如果已经装过了Docker可以跳过此步骤。
12curl -fsSL https://get.docker.com | bash -s docker --mirror aliyun # 安装dockersystemctl start docker # 启动Docker
拉取Oracle的镜像
该镜像很大,需要耐心等待….
12docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g # 拉取镜像,该步骤需要耐心等待...docker images # 查看镜像
创建Oracle容器1docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
...
Git问题记录
在使用Git的时候经常遇到一个问题,远程分支已经删除了,但是本地依然能够看到远程。这时可以使用命令删除远程已经不存在的分支。git remote prune origin:删除远程已经不存在的分支。