
数据库
文章平均质量分 61
huashanlunjian
这个作者很懒,什么都没留下…
展开
-
MySQL创建用户与授权
一, 创建用户: 命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码...原创 2015-12-08 19:19:03 · 114 阅读 · 0 评论 -
join 条件在on和where 后的区别
首先建两个表来测试下。create table a(id number,type number );insert into a values(1,1);insert into a values(2,1);insert into a values(3,2);insert into a values(4,1);insert into a values(5,2);cre...2013-05-22 16:53:31 · 171 阅读 · 0 评论 -
如何设计索引
一个表建多少索引合适 有人说一个表的索引不能超过6个,这是不对的。衡量索引是否合理不能单纯的用一个数字来判断。在 一张表上创建多少索引,创建什么样的索引,并无一定的规律。不能说一张表上有6个索引,就不能再创建第 7个索引了。设计索引时应该从应用的角度出发,一切服从应用需要。 大家都知道索引会增加维护的成...原创 2013-05-21 16:06:09 · 669 阅读 · 0 评论 -
重建索引
关于索引重建,只需要记住一条: 如果它没坏,就不要去重建它。 关于重建索引有用与否的讨论有很多。一般而言,极少需要重建 B 树索引,基本原因是 B 树索引很大程度上可以自我管理或自我平衡。事实上,大多数索引都能保持平衡和完整,因为空闲的叶条目可以重复使用。更新和删除操作确实会导致索引块周围的可用空间形成碎片,但是一般来说这些碎片都会被正确的重用。 ...原创 2013-05-20 23:30:17 · 359 阅读 · 0 评论 -
B+树索引
1.索引结构 1.1 B+树索引结构 从物理上说,索引通常可以分为:分区和非分区索引、常规B树索引、位图(bitmap)索引、翻转(reverse)索引等。其中,B树索引属于最常见的索引 B树索引是一个典型的树结构,其包含的组件主要是: 叶子节点(Leaf node):包含条目直接指向表里的数据行。 ...原创 2013-05-20 16:10:29 · 306 阅读 · 0 评论 -
ORACLE执行计划的查看
1. 采用 explain plan 如果 PLAN_TABLE 表不存在,执行 $ORACLE_HOME/rdbms/admin/utlxplan.sql 创建 plan_table 表。创建表的过程如下: 打开 cmd sqlplus /nolog conn test/test123@test 将 $ORACLE_HOME...原创 2012-08-21 17:36:35 · 109 阅读 · 0 评论 -
sum(nvl(a,b))与nvl(sum(a),b)区别
在正常情况下,所有行的数据不全为空时:select sum(nvl(1,1)) from dual ;select nvl(sum(1),1) from dual ; 结果是一样的。 在所有行数据都为空时:select sum(nvl(null,1)) from dual ;select nvl(sum(null),1) from dual ; 结果也还是一样。...原创 2012-08-20 16:00:34 · 1342 阅读 · 1 评论 -
oracle中关于表空间和用户的测试
在同一个数据库下1. 建立两个表空间tms_data 和wms_date 。 create tablespace tms_data datafile 'e:\ tms_data .dbf' size 32 M autoextend onnext 5 M maxsize 2048 M...原创 2012-03-15 11:49:01 · 196 阅读 · 0 评论 -
将字符串转成表的一列
1.WITH T AS (SELECT '1,2,3,4,5' AS STR FROM DUAL)SELECT STR1 FROM ( SELECT DISTINCT SUBSTR(T.CA,INSTR(T.CA, ',', 1, C.LV) + 1, INSTR(T.CA, ',', 1, C....原创 2012-02-03 16:24:51 · 229 阅读 · 0 评论 -
表连接的原理
当一个查询请求涉及到数据库的多个表时,必须用一定的连接条件或连接谓词将这些表连接起来,才能提供用户需要的信息 。常用的表连接方式: a. 嵌套循环连接(Nested Loop ) b. 排序合并连接(Sort Merge) c. 哈希连接(Hash join ) 嵌套循环连接( Nested Loop ) 代码如下: /* * 嵌套循环连接( Nested Lo...原创 2011-11-10 16:41:31 · 598 阅读 · 0 评论 -
ORACLE数字的处理
1.round功能:四舍五入函数如:select round(1.23456789,2) from dual; 2.trunc功能:截取函数如:select trunc(1.23456789,2) from dual; 3.金额转换函数select to_char(round(10000 / 100.00, 2), 'FM9999999999999999.00...原创 2011-11-10 13:18:07 · 113 阅读 · 0 评论 -
JAVA时间格式和ORACLE时间格式
JAVA 时间格式1 。年月日JAVA :yyyy-MM-dd 2.时分秒JAVA :hh:mm:ss(十二小时制) HH:mm:ss(二十四小时制) 3.年月日 时分秒yyyy-MM-dd HH:mm:ss ORACLE时间格式1 。年月日ORACLE: yyyy-mm-dd 如:select to_ch...原创 2011-11-07 11:34:01 · 264 阅读 · 0 评论 -
PL/SQL Developer 常用技巧
1、PL/SQL Developer记住登陆密码 在使用PL/SQL Developer时,为了工作方便希望PL/SQL Developer记住登录Oracle的用户名和密码;设置方法:PL/SQL Developer7.1.2 ->tools->Preferences->Oracle->Logon History,“Store history”是默认勾选的,勾上...原创 2011-03-31 16:59:50 · 68 阅读 · 0 评论 -
配置ORACLE远程连接
两种方法:1、利用oracle net manager工具 1)打开 oracle net manager 2)增加"服务命名" 第一步 net服务名:任意填写 第二步 通讯协议:如果连接远程机器上的oracle,选择tcp/ip(internet协议) 第三步 主机名:输入ip地址 端口号:一般缺省为1521 第四步 sid: 一般和数据库名字相同 ...原创 2011-03-29 17:13:47 · 163 阅读 · 0 评论 -
COMMIT
同一个session(会话)下,如果执行了删除语句,但没提交(COMMIT),如果在这个SESSION里执行select 会发现值没有了。但如果在另一个session中执行select,还会查到记录。 如果一个SESSION中删除了一条记录,但没提交。在另一个SESSION中再删除这条记...原创 2011-10-25 16:05:59 · 186 阅读 · 0 评论 -
ORACLE的基本DDL操作
1. 创建表空间create tablespace name datafile 'e:\oracle\project.dbf' size 32M autoextend on next 5M maxsize 2048Mdatafile为表空间路径,可以随便设置name为需要填的名字注:一个ORACLE数据库能够有一个或多个...原创 2011-10-25 15:12:25 · 387 阅读 · 0 评论 -
深度分析数据库的热点块问题(转)
热点块的定义 数据库的热点块,从简单了讲,就是极短的时间内对少量数据块进行了过于频繁的访问。定义看起来总是很简单的,但实际在数据库中,我们要去观察或者确定热点块的问题,却不是那么简单了。要深刻地理解数据库是怎么通过一些数据特征来表示热点块的,我们需要了解一些数据库在这方面处理机制的特性。 数据缓冲区的结构 我们都知道,当查询开始的时候,进程首先去数据缓冲区...原创 2013-05-24 14:13:19 · 177 阅读 · 0 评论 -
Latch (转)
一. Latch 说明 1.1 Latch在之前的一篇文章里的第四部分对Latch 有了说明,参考: 锁 死锁 阻塞 Latch 等待 详解 http://blog.youkuaiyun.com/tianlesoftware/archive/2010/08/20/5822674.aspx Lat...原创 2013-05-24 15:33:09 · 159 阅读 · 0 评论 -
SQL语法执行过程
SQL语法执行过程:1、synatic:语法分析,检查SQL语法是否错误,有没有拼写错误。2、Semantic:语义分析,检查要查询的对象是否存在,以及用户是否有对应对象的操作权限。3、Parent cursor:在library cache中检查语句中的cursor是否存在,如果存在可重用的cursor,则可以把PGA中的pri...原创 2012-08-29 09:15:51 · 163 阅读 · 0 评论 -
数据库的拆分
http://blog.youkuaiyun.com/bluishglc/article/details/6161475 本文着重介绍sharding的基本思想和理论上的切分策略,关于更加细致的实施策略和参考事例请参考我的另一篇博文:数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示 一、基本思想 Sharding的基本思想就要把一个数据库切分成多个部分放...原创 2014-07-24 17:07:58 · 95 阅读 · 0 评论 -
数据库事务隔离级别
转自:http://singo107.iteye.com/blog/1175084数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。 √: 可能出现 ×: 不会出现 脏读不可重复读幻读...原创 2014-07-24 16:09:03 · 81 阅读 · 0 评论 -
聚集索引和非聚集索引
聚集索引和非聚集索引 聚集索引:表的物理存储按照索引顺序排序。非聚集索引:表的物理存储不按照索引顺序排序。聚集索引:插入数据时速度要慢(时间花费在“物理存储的排序”上,也就是首先要找到位置然后插入)。但在范围查询数据比非聚集数据的速度快。 为什么聚集索引的范围查询会快呢?这里用ORACLE的聚簇因子来说明。 聚簇因子(CLUSTERING_FACTOR)...原创 2013-07-23 15:53:26 · 123 阅读 · 0 评论 -
索引介绍
按逻辑上来分: 1.单列索引和组合索引 单列索引:即只包含一列的索引 组合索引:即同时包含两个或两个以上列的索引 a.单列索引不能存null值,复合索引不能存储全为null的值。 b.单列索引时is null条件不会利用索引,复合索引时,is null条件在一些情况下会利用索引。 c.复合索引可以采用索引跳跃性扫描(index skip sca...原创 2013-07-23 14:39:23 · 98 阅读 · 0 评论 -
分区索引
分区索引分为本地(local index)索引和全局索引(global index)。 其中本地索引又可以分为有前缀(prefix)的索引和无前缀(nonprefix)的索引。而全局索引目前只支持有前缀的索引。 创建了一个分区表后,如果需要在表上面创建索引,并且索引的分区机制和表的分区机制一样,那么这样的索引就叫做本地分区索引。本地索引是由ORACLE自动管理的,它分为...原创 2013-07-23 10:47:32 · 92 阅读 · 0 评论 -
反向键索引的原理和用途
我们知道Oracle会自动为表的主键列建立索引,这个默认的索引是普通的B-Tree索引。对于主键值是按 顺序(递增或递减)加入的情况,默认的B-Tree索引并不理想。这是因为如果索引列的值具有严格顺序 时,随着数据行的插入,索引树的层级增长很快。搜索索引发生的I/O读写次数和索引树的层级数成正 比,也就是说,一棵具有5个层级的B -Tree索引,在最终读取到索引数据时最...原创 2013-07-22 20:00:47 · 847 阅读 · 0 评论 -
B树索引、位图索引和散列索引
索引在数据结构上可以分为三种B树索引、位图索引和散列索引 B树索引 结构: 特点: 1.索引不存储null值。 更准确的说,单列索引不存储null值,复合索引不存储全为null的值 索引不能存储Null,所以对这列采用is null条件时,因为索引上根本没Null值,不能利用到索引,只 能全表扫描。 ...2013-07-19 17:44:49 · 537 阅读 · 0 评论 -
SQLPLUS相关命令
登录sqlplus test/test123@MyDB DBA登录sqlplus test/test123@MyDB as sysdba 脚本结束符 / 关掉自动提交set auto off;原创 2013-07-17 17:55:13 · 80 阅读 · 0 评论 -
oracle trace文件查看
CALL:每次SQL语句的处理都分成三个部分Parse:这步将SQL语句转换成执行计划,包括检查是否有正确的授权和所需要用到的表、列以及其他引用到的对象是否存在。Execute:这步是真正的由Oracle来执行语句。对于insert、update、delete操作,这步会修改数据,对于select操作,这步就只是确定选择的记录。Fetch:返回查询语句中所获得的记录,这步只有select语句会被执...原创 2013-07-17 17:51:19 · 135 阅读 · 0 评论 -
ORACLE 循环
1、Exit When循环: declare -- Local variables here i integer;begin i:=0; LOOP Exit When(i>5); Dbms_Output.put_line(i); i:=i+1; END LOOP;e...原创 2012-10-12 18:39:52 · 170 阅读 · 0 评论 -
高水位线
所有的oracle段都有一个在段内容纳数据的上限,我们把这个上限称为"high watermark"或HWM。这个HWM是一个标记,用来说明已经有多少没有使用的数据块分配给这个segment。 HWM通常增长的幅度为一次5个数据块, 原则上HWM只会增大,不会缩小,即使将表中的数据全部删除,HWM...原创 2012-10-08 16:38:50 · 81 阅读 · 0 评论 -
ORACLE直方图(转)
一.何谓直方图:直方图是一种统计学上的工具,并非Oracle专有。通常用于对被管理对 象的某个方面的质量情况进行管理,通常情况下它会表现为一种几何图形表,这个图形表是根据从实际环境中所收集来的被管理对象某个方面的质量分布情况的数据所绘制成的,通常会画成以数量为底边,以频度为高度的一系列连接起来的矩形图,因此直方图在统计学上也称为质量分布图。...原创 2012-10-08 13:42:24 · 166 阅读 · 0 评论 -
imp/exp命令导入导出数据
导出数据: 1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中 exp system/manager@TEST file=d:\daochu.dmp full=y 2 将数据库中system用户与sys用户的表导出 exp system/manager@TEST file=d:\daochu.dmp owner=(syste...原创 2012-09-25 17:30:57 · 149 阅读 · 0 评论 -
oracle 数据库连接配置
MYTEST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (sid = test) )...原创 2012-09-24 18:03:31 · 160 阅读 · 0 评论 -
not in和not exists的区别
先创建测试数据: create table test1(id number);create table test2(id number);insert into test1 values(1);insert into test1 values(3);insert into test1 values(4);insert into test1 values(null);...原创 2013-05-27 13:59:43 · 175 阅读 · 0 评论 -
ORACLE数据库的简单移植
1. 导出对象(表、索引、序列等)PLSQL->TOOLS->Export User Objects注意默认为SQL文件 2. 导出数据PLSQL->TOOLS->Export Tables界面与导出对象类似,注意默认为DMP文件,也可以改成SQL文件。DMP文件较少,导入时也方便一些。 下面的操作,需要DB...原创 2011-10-25 14:56:33 · 193 阅读 · 0 评论 -
order by与索引
ORDER BY通常会有两种实现方法,一个是利用有序索引自动实现,也就是说利用有序索引的有序性就不再另做排序操作了。另一个是把结果选好之后再排序。用有序索引这种,当然是最快的,不过有一些限制条件,来看下面的测试。 测试数据:student表有两个字段id ,sid ,id是主键。一共有20W条记录,id从1到200000,sid也是从1到200000的数据。 第...2011-07-20 14:50:38 · 204 阅读 · 0 评论 -
关于索引
排序与索引SQL中很多操作需要排序,最明显的就是ORDER BY 了。ORDER BY 通常会有两种实现方法,一个是利用有序索引自动实现,也就是说利用有序索引的有序性就不再另做排序操作了。另一个是把结果选好之后再排序。用有序索引这种,当然是最快的,不过有一些限制条件,当order by 字段出现在where条件中时,才会利用索引而无需排序操作。其他情况,order by不会出现排序操作。更...2011-09-30 17:05:00 · 98 阅读 · 0 评论 -
合理创建索引
数据库索引的原理非常简单,但在复杂的表中真正能正确使用索引的人很少,即使是专业的DBA也不一定能完全做到最优。索引会大大增加表记录的DML(INSERT,UPDATE,DELETE)开销,正确的索引可以让性能提升100,1000倍以上,不合理的索引也可能会让性能下降100倍,因此在一个表中创建什么样的索引需要平衡各种业务需求。索引有哪些种类?...原创 2011-01-18 15:34:51 · 369 阅读 · 0 评论 -
合理使用排序
排序操作一般都是在内存里进行的,对于数据库来说是一种CPU的消耗,曾在PC机做过测试,单核普通CPU在1秒钟可以完成100万条记录的全内存排序操作,所以说由于现在CPU的性能增强,对于普通的几十条或上百条记录排序对系统的影响也不会很大。但是当你的记录集增加到上万条以上时,你需要注意是否一定要这么做了,大记录集排序不仅增加了...原创 2011-01-18 14:49:58 · 121 阅读 · 0 评论 -
数据库访问优化法则
要正确的优化SQL,我们需要快速定位能性的瓶颈点,也就是说快速找到我们SQL主要的开销在哪里?而大多数情况性能最慢的设备会是瓶颈点,如下载时网络速度可能会是瓶颈点,本地复制文件时硬盘可能会是瓶颈点,为什么这些一般的工作我们能快速确认瓶颈点呢,因为我们对这些慢速设备的性能数据有一些基本的认识,如网络带宽是2Mbps,硬盘是每分钟7200转等...原创 2011-01-18 14:18:32 · 93 阅读 · 0 评论