Oracle的表连接方法(一)排序合并连接
Oracle表连接方法有四种: ● 排序合并连接(Sort Merge Join) ● 嵌套循环连接(Nested Loops Join) ● 哈希连接(Hash Join) ● 笛卡尔积(Cartesian Product) 排序合并连接是将连接的两个表使用连接列排序后,对排序后的结果集进行合并后再得到匹配记录。如果连接列上面有索引,可以...
使用mysqldump对mysql进行备份和恢复
mysqldump是mysql的逻辑备份恢复工具,可以只备份某个表,某个库或者整个数据库。为了保证数据的一致性,备份的时候会加写锁,所以一定要在系统闲的时候用。语法:[root@D2-LZY245 ~]# mysqldumpUsage: mysqldump [OPTIONS] database [tables]OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [D...
Oracle访问索引的执行计划(五)
Oracle访问索引的执行计划(一)Oracle访问索引的执行计划(二)Oracle访问索引的执行计划(三)Oracle访问索引的执行计划(四) 对于复合索引,如果前导列的不同值很少,而非前导列的不同值很多,那么在查询谓词条件中没有指定复合索引的前导列,则可能会使用上索引跳跃扫描(INDEX SKIP SCAN)。 SQL> create tabl...
Oracle访问索引的执行计划(四)
Oracle访问索引的执行计划(一)Oracle访问索引的执行计划(二)Oracle访问索引的执行计划(三) 如果目标表比较大,相关字段上有索引,根据CBO,Oracle可能会使用索引快速全扫描(INDEX FAST FULL SCAN)来扫描索引,提高访问速度。索引快速全扫描使用多块读,可以并行执行,结果是无序的。产生db file scattered r...
Oracle访问索引的执行计划(三)
Oracle访问索引的执行计划(一)Oracle访问索引的执行计划(二) 当需要获取某个字段的全部数据时,如果该字段非空且有索引,或者通过where条件将空值排除掉,则可能会使用索引全扫描(INDEX FULL SCAN)。 查看HR用户下EMPLOYEES表的LAST_NAME字段的索引,为非唯一索引。SQL> select a.table_name,column_name,a.in...
Oracle访问索引的执行计划(二)
Oracle访问索引的执行计划(一) 如果目标SQL对有唯一索引字段指定范围where条件,则会使用索引范围扫描,而对于非唯一索引字段,不管指定什么where条件,均不会使用索引唯一扫描。索引范围扫描的执行计划为INDEX RANGE SCAN。 查看HR用户下EMPLOYEES表的EMPLOYEE_ID字段的索引,为唯一索引。SQL> select a.table_na...
使用load data导入数据到mysql
除了mysqlimport方式导入数据到mysql,用得更多是load data语句,其功能类似与Oracle的sqlload。详细的用法可以help load data查看。 1、准备导入数据[root@D2-LZY245 ~]# cat /tmp/emp.txt 100,Steven,King,24000.00101,Neena,Kochhar,17000.00102,Lex,De Haan,17000.00103,Alexander,Hunold,9000.00104,Bruce,Erns...
Oracle访问索引的执行计划(一)
Oracle中常用的索引有B树索引和位图索引,先来看B树索引。访问B树索引也有很多方式,最简单的是索引唯一扫描,出现在where条件的字段有唯一索引,且使用等值查询的时候,返回的记录也只有1条。索引唯一扫描的执行计划为INDEX UNIQUE SCAN。 查看HR用户下EMPLOYEES表的EMPLOYEE_ID字段的索引,为唯一索引。SQL> selec...
使用mysqlimport导入数据到mysql
1、准备导入数据[root@D2-LZY245 ~]# cat /tmp/emp.txt 100,Steven,King,24000.00101,Neena,Kochhar,17000.00102,Lex,De Haan,17000.00103,Alexander,Hunold,9000.00104,Bruce,Ernst,6000.00105,David,Austin,4800.00106,Valli,Pataballa,4800.00107,Diana,Lorentz,4200.00108,Nancy,Greenberg,12008.00109,Daniel,Faviet,9...
Oracle访问表的执行计划
Oracle访问表的方法有2种。一种是全表扫描,使用多块读,需要读取该表高水位下的所有块。对应的执行计划为TABLE ACCESS FULL。SQL> select * from employees; 107 rows selected. Execution Plan----------------------------------------------------------Plan hash value: 1445457117 ---------------------------------...
Mysql数据库二进制日志的管理
如果配置了log-bin参数,则需要配置expire_logs_days参数指定二进制日志保留时间,不然磁盘空间早晚会被日志占满的。如果之前没有配置,则配置步骤如下: 1、查看当前配置(root@localhost)[(none)] show global variables like 'log_bin';+---------------+-------+| Variable_name | Value |+---------------+-----...
Oracle查看执行计划(六)
前面讲了五种查看Oracle目标SQL执行计划的方法:Oracle查看执行计划(一)Oracle查看执行计划(二)Oracle查看执行计划(三)Oracle查看执行计划(四)Oracle查看执行计划(五)其中第一种和第二种在目标SQL使用了绑定变量的情况下,获得的执行计划有可能是不准的。创建测试表:SQL> create table test1 as selec...
使用tpcc-mysql对mysql进行TPCC性能测试
tpcc-mysq是满足TPCC规范的性能测试工具,具体步骤如下:1、下载从https://github.com/Percona-Lab/tpcc-mysql下载安装包。2、安装[root@D2-LZY245 ~]# unzip tpcc-mysql-master.zip[root@D2-LZY245 ~]# cd tpcc-mysql-master/src/[root@D2-LZY245 src]# make[root@D2-LZY245 ~]# ll...
Oracle查看执行计划(五)
如果想查看执行计划中每一步耗费的逻辑读、物理读和花费的时间,那么就需要使用10046事件来得到目标SQL的执行计划。步骤如下:(1)设置生成的trace文件标识SQL> alter session set tracefile_identifier='stone';Session altered.(2)激活10046事件SQL> oradebug setmypidStatement processed.SQL> oradebug ...
Linux下快速安装Oracle 11gR2和创建数据库
确认环境: [root@D2-OGGM31 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.36.31 D2-OGGM31 [root@D2-OGGM31 ...
Oracle查看执行计划(四)
如果目标SQL的执行计划被刷出了shared_pool,就需要使用dbms_xplan.display_awr来查看历史执行计划了。语法:select * from table(dbms_xplan.display_awr('sql_id')); SQL> conn hr/hrConnected. --先清空共享池SQL> alter system flush shared_pool; System altered. SQL> select employee_id,last_...
安装phpMyAdmin来管理Mysql数据库
在https://www.apachefriends.org/download.html下载 xampp安装包,一键安装最简单。 进行安装,默认是安装在/opt目录下。 [root@D2-AMLUATdb61 ~]# chmod 755 xampp-linux-x64-7.1.4-0-installer.run [root@D2-AMLUATdb61 ~]# ./xampp-linux-x64-7.1.4-0-installer.run 修改配置文件/opt/lampp/etc/extra/httpd-xa...
ORA-00942问题处理
开发的同事反馈,创建了表,且在PL/SQL Developer中可以看到该表,但是执行查询操作却报“ORA-00942: table or view does not exist”错误。结果发现原因是创建表的脚本中表名使用双引号引起来了,而查询的时候也是需要双引号引起来才行的。测试如下:SQL> create table test1(id number);Table created.SQL> select...
Keepalived+Mysql配置主主复制
安装环境: Hostname IP virtual IP D2-TYMYSQL51 192.168.12.51 192.168.12.50 D2-TYMYSQL52 192.168.12.52 软件包:keepalived-1.3.5.tar.gzmysql-5.7.16-linux-glibc2.5-x86_64.tar.gz 节点51部署(1)环境确认[root@D2-TYMYSQL51 ~]# cat /etc/centos-releaseCentOS Linux release 7.2.1511 (Core)[roo...
Oracle查看执行计划(三)
如果某条SQL已经执行过了,且其执行计划还在内存中,则后续可以使用dbms.xplan.display_cursor来查看。语法:select * from table(dbms_xplan.display_cursor('sql_id/hash_values',child_cursor_number,'advanced')); SQL> select employee_id,last_name,salary from employees where employee_id=100; EMPLOYEE_ID LAST_N...