6种方法诊断
1:动态性能视图2:等待事件3:statspack4:ash,awr,addm,addr5:sql turing advisor/sql access advisor6:hints
全局索引和本地索引的比较
http://blog.csdn.net/xujinyang/article/details/7109553[@more@]
vi快捷键
http://www.cnblogs.com/orez88/articles/1419216.html[@more@]http://www.cnblogs.com/orez88/articles/1419216.html
20130117-20130126
1:commit的时候,lgwr把事务变化的log buffer写到log file.事务导致buffer cache的块发生变化,进而引起log buffer发生变化。2:日志总是先于db写到磁盘上(日志写入优先),写入log file是窜行的。3:!!!!优化基本从pga,server process入手4:pga(sql工作区)单独被某一个回话共享sql工作区又分sort区,hash区,位图区.5:数据取出后,在pga内缓存,进行排序,返回给用户从多表取数据,多表就需要进行hash join,然后在pga内缓存,进入hash area size6:!pga过小,有可能造成pga空间不够,导致磁盘排序,需要关注磁盘排序,意味速度慢,临时表
再次回顾规范化和反规范化
1NF:每个元素,记录单值,若为多值,则分解2NF,3NF:非键性元素都完全依赖于键,依赖于整个键,不再依赖于其他任何元素,若有非键性的元素部分依赖于整个键,则分解BCNF:把2NF,3NF中的非键性元素替换为所有数据元素4NF:主键中的3个或更多外键元素,不存在约束的,则分解5NF:主键中的3个或更多外键元素,存在约束的实体,则分解为多对多关系规范化的目的:消除冗余(重复信息),增加灵活性(拆分,独立建立实体),避免各类增删改异常,违反数据库ACID原则中的A和C。[A:原子性(事务) C:一致性 I:隔离性(锁,undo) D:持久性]规范化一般涉及逻辑设计阶段
数据库设计方法步骤
1 创建逻辑模型1.1 标识实体,关系1.2 标识属性,并确定属性域1.3 确定主键,候选键1.4 特化/范化实体,也就是标识超类/子类1.5 检查属性是否有冗余,检查1:1关系并删除冗余关系1.6 检查模型是否支持事务,可列表分析2 将逻辑模型映射成表2.1 根据强实体/弱实体,强制参与/可选参与,和1:1,1:多等关系,多值属性,超类/子类的强制参与/可选参与,无连接约束/非无连接约束,这些规则,把模型的实体映射成表。2.2 检查映射成的表是否符合3NF。2.3 检查表是否支持用户事务。可建立交叉表格。2.4 检查业务规则,6类约束。 3 将逻辑
数据库设计_范式理解及其它
第1范式:每个列和记录包含一个而且只包含一个值的表。Branch(不属于1NF,第1条记录telNos有多个值)branchNo branchAddress telNosB001 8 504,503B002 city 206B003 14 216需要拆分成2个表,符合1NFBranch(1NF) BranchTelephone(1NF)branchNo branchAddress branchNo telNosB001 8 B001
OLTP应用优化SQL方法思路思考
OLTP应用优化SQL思路:由小到大,从限制性最强返回记录最少的连接开始,基本采用嵌套循环连接技术,依次完成其它表的连接,并在访问每张表时,合理使用索引,特别是复合索引技术。具体方法步骤:(1)限制性最强的表作为驱动表,条件字段应该有索引,包括主键,唯一索引,复合索引等。(2)考虑原则:在每次连接操作之后,尽量保证返回记录数罪少,再传递给下一个链接操作。(3)每次连接基本采用嵌套循环连接技术。(4)尽量通过在被驱动表的连接字段上的索引,访问被驱动表。(5)如果被驱动表上还有其它限制性条件,可以遵循复合索引创建原则,创
80后怎样摆脱工薪族
现在都是80后,都是工薪阶层,谁不想自己创业呢。80后是一个思想另类的群体,无论是事业上还是行为上,都与前年龄段的人不同,然而无论是任何年龄段的人,生存都是同样的,就像死亡游戏一样,过关的人生存,而失败的人则淘汰出局。生活便是这样,经济危机之下,80后还敢创业吗? 记得很小的时候,同村就有很多小学未毕业的同龄人就去打工,他们带回来的是外面精彩的世界,令很多读书的学生很追求。作为80后,这些人现在有的仍然在打工,有的回来修了楼房做起小生意,有的则混上了公务员,但单独创业的,在农村中似乎机率很少。在大
有关建模设计方面
1:需求分析->概念建模(数据梳理,归纳整理,E-R图的几比几关系就是属于概念模型)->概念设计(维度建模)->逻辑建模(星形,雪花等)->逻辑设计(星形,雪花,对概念数据模型的细化,以数据分析,应用需求为驱动)->物理设计(对逻辑模型落地的过程,是数据库架构问题)。2:物理设计元素:(1)懂得优化思路 (2)知道如何选择索引(为创建的事实表和维度表选择索引)3:逻辑模型设计步骤:(1)确定主题域(2)在主题域中确定需要的实体,并建立主键(3)确定实体间的关系(4)增加属性(5)确认模型的结构(6)确认模型的内容(7)主键中增加时间因素,保存
几款实用的个人知识管理工具
PKM2:便携式个人知识库,可以放到u盘内美味书签blogmybaseevernote资料收藏大师网文快捕(CyberArticle)信息管理器MindManager:画思维导图[@more@]
select()非阻塞方式
http://www.diybl.com/course/3_program/c/c_js/20090912/174818.html[@more@]
Unix 字符串时间戳问题
http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece7631053803a5c03dc743ca091483e898448e435061e5a2efef82621130fd8cf776503b8492bb0b66966725e60e19496d3169af185285ed93034010bf64305a51ab8ca3632b725872cedb869e2ad844284afa2c4af5244b924127bf0e7fd5f1767b97880642690d28e49654860bbfa416ee858073eee5057c644ee9043797087e1dc2c5bb228c7161380d937a74f64&p=c07b8616d9c711a05ee8ce2c4d41&user=baidu&fm=sc&query=linux+C+%B0%D1%D7%D6%B7%FB%B4%AE%D7%AA%BB%AF%B3%C9%CA%B1%BC%E4%C0%E0%D0%CD&qid=d2754b6604b
awk的一个比较不错的总结网页
具体地址见:http://cache.baidu.com/c?m=9d78d513d99d1af31fa7837e7c45923f0e55f0744ca6c7617fc3923884142a563366f4cb20356303c4c40c7071a85e2fede47132690c7af1dd8a9f4baea68f7871d57223706b854513c419d89a1b7adc6ad758e9ad1fe5b0ed62cdf387ce9e12008c08546780f48c5c0a1fca6df21f34e3a19248135c14b0e92d&p=85769a4083800ee908e2977f1c50&user=baidu&fm=sc&query=Linux+awk%BC%F2%BC%F2%B5%A5%B5%A5&qid=d1fa30b313cdeb46&p1=2[@more@]
维度建模相关
1:事实表:包含业务过程等数据,通常包含大量记录。2:维度表:基于事实表的事实记录的特性,提供描述性信息。3:维度包含三种模型:星形模型,雪花模型,多维模型。(1)星形模型:事实表被维度表所包围,且维度没有被新的表连接。(2)雪花模型:事实表被多个维表或一个或多个层次所包围。个人感觉不同的模型,主干部分就是对主键的拆分。(分支部分就是外键或者新主键又一层的拆分)。看清了主键的组成也就看清楚了模型的结构。4 :维度的类型:无维度数据处理,缓慢变化维,快速变化维,大维和迷你维,退化维,普通维度、雪花维度、父子维度。
一种迁移到体系结构化环境的方案
(1)获得一个数据模型(2)定义记录系统,也就是找到最符合数据模型需求的数据。记录系统是数据仓库模型的数据源。然后,需要寻找将记录系统中的数据迁移到数据仓库中可能面临的技术挑战。包括1)DBMS的变化 2)操作系统的变化 3)需要将源自不同DBMS和操作系统的数据合并起来 4)基本数据格式的变化(3)设计数据仓库,主要工作有,1)清除纯操作性数据 2)做数据稳定性分析,将经常变动的数据和比较稳定的数据分开存放于不同的物理结构中。3)按主题域进行组织等。(4)设计和建立记录系统和数据仓库之间的接口(数据抽取+数据集成),可以用ETL软件建立和维
Unix shell解决实际问题脚本(3)
(1)移除注释#行管道|管道|sed / ^#/d(2)以kb或1024字节块,mb,gb查看文件系统命令:df -k | tail +2df -m | tail +2df -g | tail +2(3)df -k | tail +2 | egrep -v '/dev/cd[0-9]| /proc'=df -k | tail +2 | grep -v '/dev/cd[0-9]' | grep -v '/proc'df -k | tail +2 | egrep -v 'dev/cd[0-9]|/proc' | awk '{print $1, $4, $7}' #awk内一个逗号,一个空格(4)%号移除方法sed s /% //gcommd | sed s/current_string/new_string/g(5)BINDIR="/usr/local/bin"EXCETPIONS="${BINDIR}/exceptions" # 用大括号把BINDIR括起来
Unix shell解决实际问题脚本(2)
处理文件速度比较快的脚本方法:方法1:function while_read_line_bottom_fd_out{>$OUTIFILEexec 4<&1 #文件描述符exec 1>$OUTFILE while read LINEdoecho "$LINE"done < $INFILE #循环结束处,重定向输入exec 1<&4exec 4>&-}处理文件速度比较慢的脚本方法:方法2:function while_read_line_cmdsub2_fd_in{>$OUTFILEexec 3<&0exec 0<$INFILEwhile LINE=$(line)doecho "$LINE" >>$OUTFILEdoneexec 0<&3exec 3>&-}使用文件描述符,处理速度可以快10ms.用
设计数据仓库和数据仓库的粒度
1:设计数据仓库的一种常用方法叫多维方法。需要星形连接,事实表和维。星型连接的中央的表称作事实表。其周围的其它实体称为维表。2:数据集市中的数据结构是根据部门的需求而建立的。所以,部门不同,数据集市也不同,但是,它们的所有结构都要依赖于数据仓库中粒度化的数据。3:如何确定粒度?(1) 对数据仓库中将来的数据行数和所需要的空间进行粗略估算(数量级)。比如:确定创建所有的表,一两张大表和多张小表,估计每张表中行的大小,估计一个上界和一个下界。(2)计算索引数据所占的空间,确定每张表(对表中的每个关键字或会被直接搜索的
Unix shell解决实际问题脚本(1)
#转大写typeset -u#转小写typeset -ltypeset -u VARIABLE VARIABLE="True"echo $VARIABLE#字母转大写小写upcaseservar=$(echo $VARIABLE | tr ' [a-z]' '[A-Z]')downcaseservar=$(echo $VARIABLE | tr '[A-Z]' '[a-z]')#############################################cron,1月8日所在星期的每天早晨3:15执行脚本(分小时日月星期)15 3 8 1 * /usr/local/bin/somescripts.bash 2>&1 >/dev/null在1月1日午夜00:00,在控制台写入Happy New Year0 0 1 1 * /usr/bin/banner "Happy New Year" > /dev/console###