收集数据库相关技术文章
摘要: 分析函数2(rank, dense_rank, row_number)
目录
===============================================
1.使用rownum为记录排名
2.使用分析函数来为记录排名
3.使用分析函数为记录进行分组排名
一、使用rownum为记录排名:
在前面一篇《oracle开发专题之:分析函数》,我们认识了分析函数的基本应用,现在我们再来考虑下面几个问题:
①对所有客户按订单总额进行排名
②按区域和客户订单总额进行排名
③找出订单总额排名前13位的客户
④找出订单总额最高、最低的客户
⑤找出订单总额排名前25%的客户
摘要: 本文是关于mysql数据库性能优化方面的问题,希望对初中级mysql dba以及其他对mysql性能优化感兴趣的朋友们有所帮助。
在平时被问及最多的问题就是关于mysql数据库性能优化方面的问题,所以最近打算写一个mysql数据库性能优化方面的系列文章,希望对初中级mysql dba以及其他对mysql性能优化感兴趣的朋友们有所帮助。
数据库属于io密集型的应用程序,其主职责就是数据的管理及存储工作。而我们知道,从内存中读取一个数据库的时间是微秒级别,而从一块普通硬盘上读取一个io是在毫秒级别,二者相差3个数量级。所以,要优化数据库,首先第一步需要优化的就是io,尽可能将磁盘io转化为内存io。本文先从mysql数据库io相关参数(缓存参数)的角度来看看可以通过哪些参数进行io优化:
•query_cache_size/query_cache_type (global)
query cache作用于整个mysql instance,主要用来缓存mysql中的resultset,也就是一条sql语句执行的结果集,所以仅仅只能针
摘要: mysql cache功能分析:
1 mysql的cache功能的key的生成原理是:把select语句按照一定的hash规则生成唯一的key,select的结果生成value,即 key=>value。所以对于cache而言,select语句是区分大小写的,也区分空格的。两个select语句必须完完全 全一致,才能够获取到同一个cache。
2 生成cache之后,只要该select中涉及到的table有任何的数据变动(insert,update,delete操作等),相 关的所有cache都会被删除。因此只有数据很少变动的table,引入mysql 的cache才较有意义。关于这方面的测试,可以参考:《query cache,看上去很美》一文。
所以,mysql的cache功能只适用于下列场合:数据变动较少,select较多的table。
那么。在复杂的系统中,如何使用mysql的cache功能呢,基本方法如下:
配置query_cache_type,同时改写程序。
quer
摘要: powerdesigner对数据库反向建立pdm可以使用sql方式,这个很简单,直接导入建表sql文件就可以了。
要说的是使用数据库做源的建模方式,以前弄过一次,很久没弄忘了,这次要弄在网上搜了一下,结果不太满意,于是自己重新整理了一个步骤,贴出来共享一下,也算给自己做个备忘。
注意事先安装好oracle客户端,并且正确配置好tns。
1、 新建pdm:
选择菜单file->new model,【model type】选择physical data model,【model name】 自由命名,【dbms】选择“oracle version 10gr2”,ok。
摘要: 最近做一个项目,客户希望可以自己选择想要查看的列表,这样就不好办了,选择列表的名字他们也想自定义,没办法这就需要查看数据表中字段,中文说明,默认标志了。在网上查了部分资料但是发现粘上去的代码都存在问题,无奈只好自己修改了一下,代码如下:
如下代码能正常运行,都是网上查找资料最后拼凑总结出来的。条件就自己加吧。网上好像也有不少类型的东西,这里留着以备不时只需!
摘要: 如果做表单自定义或做数据库管理软件,就必须能自动取得某个用户下数据库的一些信息。比较有用的有:
表名,字段英文名,字段中文名,字段的类型,字段的长度等。其中,字段的中文名按照数据库的记录是无法取到的,但是我们可以变通一下,
通过comments去记录字段中文名。
//取得该用户下所有的表
select * from user_tables;
//取得表名为sysuser的注释信息
select * from user_tab_comments where table_name = 'sysuser';
//取得该用户下表名为sysuser表的结构
select * from user_tab_columns where table_name='sysuser';
//取得该用户下表名为sysuser表中字段的注释信息
select * from user_col_comments where table_name = 'sysuser';
阅读全文
摘要: 目标:
本文主要介绍powerdesigner中概念数据模型 cdm的基本概念。
一、概念数据模型概述
数据模型是现实世界中数据特征的抽象。数据模型应该满足三个方面的要求:
1)能够比较真实地模拟现实世界
2)容易为人所理解
3)便于计算机实现
概念数据模型也称信息模型,它以实体-联系(entity-relationship,简称e-r)理论为基础,并对这一理论进行了扩充。它从用户的观点出发对信息进行建模,主要用于数据库的概念级设计。
通常人们先将现实世界抽象为概念世界,然后再将概念世界转为机器世界。换句话说,就是先将现实世界中的客观对象抽象为实体(entity)和联系(relationship),它并不依赖于具体的计算机系统或某个dbms系统,这种模型就是我们所说的cdm;然后再将cdm转换为计算机上某个dbms所支持的数据模型,这样的模型就是物理数据模型,即pdm。
摘要: 1. select子句中避免使用 “*”
当你想在select子句中列出所有的column时,使用动态sql列引用 ‘*’ 是一个方便的方法.不幸的是,这是一个非常低效的方法. 实际上,oracle在解析的过程中, 会将“*” 依次转换成所有的列名, 这个工作是通过查询数据字典完成的, 这意味着将耗费更多的时间.
2.使用decode函数来减少处理时间
使用decode函数可以避免重复扫描相同记录或重复连接相同的表. 例如:
sql代码 1.select count(*),sum(sal) from emp where dept_no = 0020 and ename like ‘smith%’;
2.select count(*),sum(sal) from emp where dept_no = 0030 and ename like ‘smith%’;
select count(*),sum(sal) from emp where dept_no = 0020 and ename like ‘smith%’;
摘要: oracle、db2、sqlserver、mysql、access分页sql语句梳理
最近把平时在项目中常用到的数据库分页sql总结了下。大家可以贴出分页更高效的sql语句。
sqlserver分页
第一种分页方法
需用到的参数:
pagesize 每页显示多少条数据
pagenumber 页数 从客户端传来
totalrecouds 表中的总记录数 select count (*) from 表名
totalpages 总页数
totalpages=totalrecouds%pagesize==0?totalrecouds/pagesize:totalrecouds/pagesize 1
pages 计算前pages 条数据
pages= pagesize*(pagenumber-1)