关于数据库优化的文章收藏

第一篇:

表设计和查询的一些参考

1.合理使用索引
索引是数据库中重要的数据结构,它的根本目的就是为了提高查询效率。现在大多数的数据库产品都采用IBM最先提出的ISAM索引结构。索引的使用要恰到好处,其使用原则如下:
●在经常进行连接,但是没有指定为外键的列上建立索引,而不经常连接的字段则由优化器自动生成索引。
●在频繁进行排序或分组(即进行group by或order by操作)的列上建立索引。
●在条件表达式中经常用到的不同值较多的列上建立检索,在不同值少的列上不要建立索引。比如在雇员表的“性别”列上只有“男”与“女”两个不同值,因此就无必要建立索引。如果建立索引不但不会提高查询效率,反而会严重降低更新速度。
...


Tags: 优化  oracle数据库  数据库  SQL  MYSQL数据库  
数据库SQL联合查询的思考

昨天晚上和网友讨论了一个关于数据库联合查询的效率的问题.说实话,以前我一直没怎么考虑过这个问题,在写SQL时,都没怎么考虑,似乎一切都成了习惯,或者已经懒散贯了,但是,网友和我聊起来了,我也就好好考虑起这个问题了,平时不考虑时不知道,真正好好计较一下,才发现还有很多门道.

.................

根据以上的思考,结果很吓人,经过对比,发现,结果好恐怖,遍历次数差别简直就是.........比比看看:600万--2.3万--1600--800,这种比例实在太恐怖了,我不得不对联合查询产生了动摇,难道我们为联合查询的便利,就付出如此巨大的浪费吗?我们真的应该重新审视一下,我们平时已经习惯的编程习惯,以及那些我们认为理所当然的代码............


Tags: SQL  数据库  oracle数据库  MYSQL数据库  
如何进行ibatis动态多条件组合查询以及模糊查询(oracle,mysql)

这几天在学习使用IBATIS突然要使用模糊查询,以及动态多个条件查询,按照自己的想法试了很久,都没解决这个问题.

首先是模糊查询的问题,开始时我使用如下条件:select * from user where name like '%#value#%'. 可是怎么也不行,好像还报错了.后来在网上找到了解决方法,就是使用$来代替#号.

1>写成: like '%$value$%' 就可以了,<!-- 模糊查询不能用#,#是用prepareStatement的?插入参数,$是文本替换 -->,

2>同时还找到另一个方法,但是那个方法我试了很久,就是不行,方法为: like '%' || #value# || '%'  , 查询出来的结果居然是全部.后来在网上有人说,这个写法是oracle的写法,

3>如果是mysql,则应该写成: name like CONCAT('%',#value:VARCHAR#,'%')  ,不过我没试用过,反正有一个方法成功就可以了.

第一个方法我试用成功,后面的也就没试过,有兴趣的朋友可以试试

第二个大问题就是多条件组合查询,................


Tags: ibatis  查询  数据库  oracle数据库  MYSQL数据库  
发布一个oracle函数,身份证校验码生成函数

 以前从来没想过要这种函数,后来公司说,程序里的一些重要的编号都要带一个验证码,要求我使用身份证的校验码方法,我从公司以前的oracle数据库里找到了以下的oracle函数,公布一下,大家共享一下,哈哈.使用了这个函数的朋友记得常来我这里顶顶哦.巴士飞扬 www.busfly.cn 时刻 欢迎你的来访,共同学习进步

-- 生成身份证号码的 校验位 ISO 7064:1983.MOD 11-2校验码计算出来的检验码(公司内部函数,保密,保密~~~~~)

create or replace function getVerify_ISO7064(...... 

OK了,现在你可以用你的身份证试一下了,你的身份证最后一位就是验证码,把最后一位留下,其它的当参数输入进去查一下就知道了,这个函数不是专门为身份证做的,任意长度的都可以.我公司是用来作为编号的最后一位.

以下是公司里的用法,再写了一个函数,将产生的验证码的X改成0,因为编号里一般只有数字,再连接到原字符串后面,返回:

create or replace function make_Verify_pcard_id (....

 


Tags: oracle数据库  
Oracle 安装后 8080和80端口被占用的解决办法

昨天安装了oracle,突然发现8080端口被oracle给占了,后来在大学同学乌托邦博客 的帮助了,终于将oracle占用的8080端口给换成了9090,不过,通过9090端口却打不开oracle的那个网页了,不过,我同学说没关系,那个东西oracle其实也没什么用
8080端口解决办法,网上找到很多答案,可是我看到的都似乎不全,都是随便转载的,一句话都被搞成几段了,还是不摘过来了,直接把乌托邦博客的方法摘过来大家看看吧: ......


Tags: oracle数据库  
oracle SQL里常用的时间函数,经典推荐

相信很多人都有过统计某些数据的经历,比如,要统计财务的情况,可能要按每年,每季度,每月,甚至每个星期来分别统计。那在oracle中应该怎么来写sql语句呢,这个时候Oracle的日期函数会给我们很多帮助。 常用日期型函数 1。Sysdate 当前日期和时间 SQL> Select sysdate from dual; SYSDATE ---------- 21-6月 -05 2。Last_day 本月最后一天 SQL> Select last_day(sysdat...


Tags: oracle数据库  
oracle相当于split功能的代码(原创)
工作中的小问题,却困扰了我一天,到网上找了一些代码,都说是最好的,封装成oracle的函数,试过两个评价最高的(也转载到了我的"编程仓库"里了,请看: http://www.busfly.cn/CSDN/post/313.html ,和http://www.busfly.cn/CSDN/post/oracle-split02.html) 这两个东西各有特点,我只是成功的使用了第二个,第二个用到了管道,将split后的结果通过SQL查询语句来获取,结果,成功了,果然可以得到拆分...
Tags: oracle数据库  
在数据库SQL中使用的时间函数
通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。              在使用本文中的例子...
Tags: oracle数据库  
数据库操作,别让NULL值拦住你的去路:Invalid column type错误原因
数据库操作,别让NULL值拦住你的去路:Invalid column type错误原因 Invalid column type出错的原因其实很简单,就是NULL值搞的鬼。比如,strsql=“insert mytable values(”+ID+“)”,如果这时ID就是NULL的话,那可能就会出错了。
Tags: oracle数据库  
oracle最常用的语句,全部是在我工作中使用过的,慢慢收藏添加中

原创文章, 第一条,select * from tab ----查询数据库中所有表名.添加时间2007-8-3 第二条,desc tableName----查看一个表的结构第三条, update 表名 set 字段名='前面添加的字符串'||字段名||'后面添加的字符串'; ----在一个字段的前面或者后面添加字符串,以前我还以为是用+来连接,没想到竟然是用|| 第四条 update PR_ALLOCATION_INFO set in...


Tags: oracle数据库  
分页:[«] 1[»]
分类最近文章
    <#CACHE_INCLUDE_CATEGORY__HTML#>
Powered By Z-Blog   STYLE by busfly . FatMouse
Copyright © 2007 巴士飞扬技术博客. . 沪ICP备07027972号. 会员群1(J2EE为主):3769186.