自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(94)
  • 收藏
  • 关注

使用Node.js + MongoDB实现一个简单的日志分析系统

在最近的项目中,为了便于分析把项目的日志都存成了JSON格式。之前日志直接存在了文件中,而MongoDB适时闯入了我的视线,于是就把log存进了MongoDB中。log只存起来是没有意义的,最关键的是要从日志中发现业务的趋势、系统的性能漏洞等。之前有一个用Java写的分析模块,运行在Tomcat下。实现相当的重量级,添加一个新指标的流程也比较繁琐,而且由于NFS的原因还导致分析失败。一直想...

2011-10-31 16:51:00 183

重新认识excel(4):数据的位置

数据的位置既然将电子表格的背景看成一个坐标系,每一个单元格是位于坐标系中的点,那么单元格中的内容(或称为“数据”)是如何分配放置的?其实,人们之所以使用电子表格,最多的应用是数据的计算,相当于一个数据库的简单应用,当数据不需要特别复杂的管理时,excel完全能够胜任。既然是基于数据库管理的应用,所以电子表格中的数据也不是随意放置的。比如:一行数据就对应着数据库中“记录”的概念,是一组相关数...

2011-10-31 14:18:00 100

《Oracle编程艺术》学习笔记(37)-数据类型-LOB

1) BLOB二进制LOB。用于存储大量的二进制信息,不会进行字符集转换。允许存储最多(4GB)×(创建LOB时指定的CHUNK参数,默认为数据库块大小)字节的数据。2) CLOB字符LOB。这种类型用于存储大量的文本信息,要进行字符集转换。允许存储最多(4GB)×(创建LOB时指定的CHUNK参数,默认为数据库块大小)字节的数据。3) NCLOB存储用Unicode编...

2011-10-30 13:57:00 99

《Oracle编程艺术》学习笔记(36)-数据类型-时间日期

固有数据类型DATE、TIMESTAMP和INTERVAL紧密相关。DATE和TIMESTAMP存储精度可变的固定日期/时间。INTERVAL可以存储一个时间量。1)DATE7字节的定宽日期/时间数据类型。总包含7个属性,包括:世纪、世纪中哪一年、月份、月中的哪一天、小时、分钟和秒。2)TIMESTAMP [(fractional_seconds_precision)]7字...

2011-10-30 13:48:00 117

《Oracle编程艺术》学习笔记(35)-数据类型-数值

Oracle有持3种固有数据类型来存储数值。1)NUMBER存储精度最多达38位。以变长格式存储。长度为1~22字节。取值范围[-1.E+130,1.E+126)。语法:NUMBER(p,s)P和S是可选的,P指定了精度(precision),或总位数。默认情况下,精度为38 位,取值范围是1~38。也可以用字符*表示38。S指定小数位置(scale),或小数点右边的位数。...

2011-10-30 13:26:00 100

《Oracle编程艺术》学习笔记(34)-数据类型-字符串和二进制串

字符串类型Oracle 中有4 种基本的字符串类型,分别是CHAR、VARCHAR2、NCHAR 和NVARCHAR2。在Oracle 中,所有串都以同样的格式存储。在数据库块上,最全面都有一个1~3 字节的长度字段,其后是数据。1) CHAR(<SIZE><BYTE|CHAR>):定长字符串,会用空格填充来达到其最大长度。最多可以存储2,000字节的信息。...

2011-10-30 13:24:00 114

检讨

随时准备失去所拥有的,我可能才会倍加珍惜周围的一切!

2011-10-28 12:20:00 58

检讨

随时准备失去所拥有的,我可能才会倍加珍惜周围的一切!

2011-10-28 12:20:00 62

工程硕士考试复习小结

工程硕士考试复习到现在已经接近尾声,后天就要奔赴省城石家庄赶考了.整个工程硕士的复习过程从十月初开始到现在将近一个月的时间,对所需要进行考试的科目进行整体复习.复习的形式前阶段主要是视频讲解中间阶段是看相应的文档和知识点,最后就是进行专项练习+真题模拟训练. GCT考试的特点不同于我往常所接触过的考试,它的特点是覆盖面非常大,知识点非常多.题的本身不难,难的是时间紧,题量大.所以在保证一...

2011-10-27 21:31:00 118

重新认识excel(3):合并的单元格

说到“抽屉格子”,常出现一种情况,那就是当一个格子不够用、放不下大量的内容时应该怎么办呢?这时可以将几个格子合并,然后放入同样的内容。但是这样违反了电子表格“坐标”的严谨性,有时excel会不知所措。所以当遇到有计算或排序等运算时,尽量不要合并单元格,而只用于显示布局时可以使用,以利于数据的可读性。比如:一个表格一般都有一个标题,为了美观,这个标题必须横跨几个单元格,然后“居中”放置,...

2011-10-27 09:37:00 84

重新认识excel(2):坐标

作为一个通用的电子表格,最显著的特点就是预先给出了一个隐含的表格坐标:就是横向为A、B、C、D、……,作为每一列的“刻度”标识,相当于横坐标;纵向顺序1、2、3、4、……,相当于坐标系中的纵坐标,因此,纵横交错的地方就是一个“单元格”,而且坐标就是这个单元格的名字,比如:A3单元格就处于第一列、第三行。 ABCD...

2011-10-26 11:28:00 197

如何控制弹出菜单向上弹出(how to control popup menu pop direction)

Popup Menu是windows组件,默认只能控制弹出点,但弹出方向是向上还是向下是系统自动控制的。如果有屏幕下方有足够的空间,默认是向下的。但有的时候需要菜单向上弹出,如图所示:以前我的做法是计算菜单高度,然后从左上角向下弹出,看似向上弹出的。可是这个菜单高度是个系统相关的东西,没有一个直接的属性在菜单弹出前得到。比如xp和vista的默认高度不一样,大字体的系统和标准字体的高度也不...

2011-10-25 21:57:00 326

《Oracle编程艺术》学习笔记(33)-基于函数的索引

基于函数的索引(function-based index)就是B*树索引或位图索引,但它能够对计算得出的列建立索引,并在查询中使用这些索引。可以把基于函数的索引看作一个虚拟列(或派生列)上的索引。基于函数的索引可以用于加快形如SELECT * FROM T WHERE FUNCTION(DATABASE_COLUMN) = SAME_VALUE 这样的查询, 因为值FUNCTION(DATAB...

2011-10-25 15:23:00 146

《Oracle编程艺术》学习笔记(32)-位图索引(bitmap index)

对于B*树索引,通常索引条目和行之间存在一种一对一的关系:一个索引条目就指向一行。而对于位图索引,一个索引条目则使用一个位图同时指向多行。使用create bitmap index...来创建位图索引。位图索引适用于相异基数(distinct cardinality)低而且通常只读的数据(相异基数低的是指相对于表中的总行数,数据只有很少的几个不同值)。考虑在一个有100万行的表中,...

2011-10-25 15:16:00 145

《Oracle编程艺术》学习笔记(31)-什么情况下适合使用B*树索引

B*树索引->http://blog.csdn.net/fw0124/article/details/6902151有两种适合使用B*树索引的方法,1)仅通过索引回答一个查询索引包含了足够的信息来回答整个查询,根本不用去访问表。在这种情况下,索引则用作一个“较瘦“版本的表。2)通过读索引来访问表中的少部分行此时应当只访问问表中很少的一部分行(只占一个很小的百分比)。如果需...

2011-10-25 14:46:00 99

《Oracle编程艺术》学习笔记(30)-B*树索引

B*树索引是Oracle的“传统“索引。B*树的构造类似于二叉树,能根据键提供一行或一个行集的快速访问,通常只需很少的读操作就能找到正确的行。不过,”B*树“中的”B“不代表二叉(binary),而代表平衡(balanced)。B*树索引并不是一颗二叉树。在一个数字列上建立的索引类似于下图:叶子节点之上的内部块称为分支块(branch block)。这些节点用于在结构中实现导航。最...

2011-10-25 14:23:00 108

《Oracle编程艺术》学习笔记(29)-临时表和CBO

临时表的介绍->http://blog.csdn.net/fw0124/article/details/6738266临时表从当前登录用户的临时表空间分配存储空间,每个用户可能在不同的表空间为其临时表分配空间。如果从一个定义者权限(definer right)过程访问临时表,就会使用该过程所有者的临时表空间。全局临时表实际上是表本身的一个模板。创建临时表的动作不涉及存储空间分配,不会...

2011-10-24 22:18:00 93

《Oracle编程艺术》学习笔记(28)-有序散列聚簇表

有序散列聚簇表(sorted hash clustered table)是10g之后新增。结合了散列聚簇和IOT的特性。如果经常使用如下查询,则很适合使用有序散列聚簇表。Select *From tWhere KEY=:xOrder by SORTED_COLUMN也就是说,要按某个键获取数据,但要求这些数据按另外1列/几列排序。通过使用有序散列聚簇,Oracle可以返回数...

2011-10-24 22:14:00 131

《Oracle编程艺术》学习笔记(27)-散列聚簇表

散列聚簇表(hash clustered table)和索引聚簇表非常相似,只有一个主要区别:聚簇键索引被一个散列函数所取代。Oracle会取得一行,使用一个内部函数或者你提供的每个函数对其计算散列,然后使用这个散列值得出该行数据应该在磁盘上的哪个位置。理想情况下,散列值均匀地分布到为散列聚簇分配的所有块上,从查询利用一个I/O就能直接找到数据。实际中,最后可能会有多行数据的散列值散列...

2011-10-24 22:10:00 94

《Oracle编程艺术》学习笔记(26)-索引聚簇表

聚簇(cluster)是指:如果一组表有一些共同的列,则将这样一组表存储在相同的数据库块中;聚簇还表示把相关的数据存储在同一个块上。聚簇并不是有序地存储数据(这是IOT的工作),它是按每个键以聚簇方式存储数据,但数据存储在堆中。利用聚簇,一个块可能包含多个表的数据。聚簇也可以用于单个表,可以按某个列将数据分组存储。SQL Server 中的聚簇索引(clustered index)则要求行...

2011-10-24 22:04:00 127

《Oracle编程艺术》学习笔记(25)-索引组织表

索引组织表(index organized table)简称IOT。IOT中,数据要根据主键有序地存储。适合使用IOT的几种情况:· 表完全由主键组成或者只通过主键来访问一个表。使用IOT,表就是索引,可以节约空间,提高效率。· 通过外键访问子表,子表使用IOT。通过IOT将相同外键的子表数据物理的存储在同一个位置,查询所需要的物理I/O更少,因为数据都在同一个(几个)块上。·...

2011-10-24 21:59:00 94

《Oracle编程艺术》学习笔记(24)-堆组织表

执行CREATE TABLE语句时,默认得到的表类型就是堆组织表。其他类型的表结构需要在CREATE TABLE语句本身中指定它。堆组织表中,数据以堆的方式管理。增加数据时,会使用段中找到的第一个能放下此数据的自由空间。从表中删除数据后,允许以后的INSERT和UPDATE重用这部分空间。堆(heap)是一组空间,以一种随机的方式使用。因此,无法保证按照放入表中的顺序取得数据。有1个简单的...

2011-10-24 21:49:00 140

《Oracle编程艺术》学习笔记(23)-段

段就是占用存储空间的数据库对象,占用存储空间的每一个对象最后都会存储在一个段中,如表、索引、回滚段等。段的类型1)表段2)表分区段(table partition)或子分区段(subpartition)这种段类型用于分区,与表段很相似。分区表由一个或多个分区段(table partition segment)组成,组合分区表则由一个或多个表子分区段(tablesubpartitio...

2011-10-24 21:44:00 136

《Oracle编程艺术》学习笔记(22)-表类型

Oracle中主要有9种表类型:1)堆组织表(heap organized table)这就是标准数据库表。数据以堆的方式管理。增加数据时,会使用段中找到的第一个能放下此数据的自由空间。从表中删除数据后,允许以后的INSERT和UPDATE重用这部分空间。堆(heap)是一组空间,以一种随机的方式使 用。2)索引组织表(index organized table)表按索引结构存储。这就...

2011-10-24 20:48:00 175

《Oracle编程艺术》学习笔记(21)-ORA-01555:snapshot too old 错误

Oracle的多版本模型会使用回滚段(UNDO段)数据依照语句或事务(取决于隔离模式)开始时的原样来重建块。回滚段是循环使用的,当事务提交以后,该事务占用的回滚段事务表会被标记为非活动,回滚段空间可以被覆盖重用。造成ORA-01555错误有三个可能原因:UNDO段太小;提交太频繁;延迟的块清除。UNDO段太小有2个解决办法,1)减少查询的运行时间(调优)。应该首先尝试这种方法。这样...

2011-10-24 20:45:00 119

《Oracle编程艺术》学习笔记(20)-块清除

数据库块的最前面有一个“开销”空间(overhead),这里会存放该块的一个事务表,对于锁定了该块中某些数据的各个“实际”事务,在这个事务表中都有一个相应的条目。->http://blog.csdn.net/fw0124/article/details/68992231)首先当一个事务开始时,需要在回滚段事务表上分配一个事务槽;2)在数据块头部获得一个ITL事务槽,该事务槽指向回滚段...

2011-10-24 20:29:00 72

《Oracle编程艺术》学习笔记(19)-数据库日志模式

数据库可以有两种LOG模式,ARCHIVELOG模式和NOARCHIVELOG模式。NOARCHIVELOG模式在线重做日志写满以后不会被归档,因此出现故障后无法恢复。可以使用select log_mode from v$database语句来查询,或者在sysdba权限下使用archive log list语句来查询当前的LOG模式。例如:sys@ORA11GR2> arc...

2011-10-24 20:22:00 90

软考复习体会

最近一段时间比较自由,任务也相对比较少,主要任务就是软考。 软考复习进行了一个多月,软考的特点就是知识点非常复杂,而且需要一定的实战经验。比如说上午题,涉及到了十几科,比较难的有编译原理,操作系统,类似的还有计算机组成原理。这些都是计算机比较底层的一些东西,对于我们整天用着VS或者其他一些工具来写代码的小菜鸟来说理解起来还是比较有困难的。 如果仅仅是为了考试,这些东西...

2011-10-24 09:23:00 95

《Oracle编程艺术》学习笔记(18)-REDO和UNDO

REDOOracle维护着两类重做日志文件:在线(online)重做日志文件和归档(archived)重做日志文件。在线重做日志用于在出现电源故障(实例终止)时“修正”数据文件,而归档重做日志用于在出现硬盘故障时或者误操作删除数据时,配合数据文件备份“修正”数据文件。为什么需要重做日志文件->http://blog.csdn.net/fw0124/article/details/68...

2011-10-24 00:43:00 52

《Oracle编程艺术》学习笔记(17)-DEFERRABLE约束

默认情况下,完整性约束在整个语句得到处理后进行检查。但是可以创建延迟约束,把这个约束延迟到COMMIT或另外某个时间才检查。可以指定为· DEFERRABLE INITIALLY IMMEDIATE:创建可延迟的约束,但是初始状态是在语句级检查。INITIALLY IMMEDIATE也可以不写。· DEFERRABLE INITIALLY DEFERRED: 创建可延迟的约束,而且初始...

2011-10-24 00:36:00 56

《Oracle编程艺术》学习笔记(16)-事务持久性

通常情况下,事务提交后,它的改变就是持久的。即使提交后数据库崩溃,改变也永久存储到数据库中了。但是,有2种例外情况:1)使用COMMIT语句新增的WRITE扩展10gR2以上版本新增特性,包括下面2种选择· COMMIT [WORK] WRITE WAIT 等同于COMMIT,需要等待提交完成(完成向REDO日志文件的物理写入操作),即同步提交。· COMMIT [WORK] ...

2011-10-24 00:33:00 49

《Oracle编程艺术》学习笔记(15)-事务原子性

事务的四大特性:ACID· 原子性(atomicity):事务中的所有动作要么都发生,要么都不发生。· 一致性(consistency):事务将数据库从一种一致状态转变为下一种一致状态。· 隔离性(isolation):一个事务的影响在该事务提交前对其他事务都不可见。· 持久性(durability):事务一旦提交,其结果就是永久性的。语句级原子性下面的insert语句,如果由于c...

2011-10-24 00:31:00 67

《Oracle编程艺术》学习笔记(14)-写一致性

先解释2个概念:· 一致读(Consistent read):“发现”要修改的行时,所完成的获取就是一致读。· 当前读(Current read):得到块来实际更新所要修改的行时,所完成的获取就是当前读。可以通过tkprof报告看到每条语句一致读和当前读的统计。tkprof:http://blog.csdn.net/fw0124/article/details/6899162用...

2011-10-24 00:27:00 53

《Oracle编程艺术》学习笔记(13)-Oracle的并发与多版本控制

事务隔离级别ANSI/ISO SQL 标准定义了4 种事务隔离级别,这些隔离级别是根据3个“现象”定义的1)脏读(dirty read) 能读取未提交的数据,也就是脏数据。2)不可重复读(nonrepeatable read) 如果在T1时间读取某一行,在T2时间重新读取这一行时,这一行可能已经被修改,被删除,或者被更新等等。3)幻像读(phantom read) 如果在T...

2011-10-24 00:21:00 58

《Oracle编程艺术》学习笔记(12)-Oracle的锁

以下是对Oracle锁定策略的总结:· Oracle只在修改时才对数据加行级锁。正常情况下不会升级到块级锁或表级锁。· 如果只是读数据,Oracle 绝不会对数据锁定。不会因为简单的读操作在数据行上锁定。· 写入器(writer)不会阻塞读取器(reader)。换种说法:读(read)不会被写(write)阻塞。这一点几乎与其他所有数据库都不一样。在其他数据库中,读往往会被写阻塞。...

2011-10-23 23:26:00 53

《Oracle编程艺术》学习笔记(11)-Oracle进程

Oracle实例主要有3类进程(在Windows中,实际上是线程):·服务器进程(server process):这些进程根据客户的请求来完成工作。服务器进程包括专用服务器和共享服务器。http://blog.csdn.net/fw0124/article/details/6898693·后台进程(background process):这些进程随数据库而启动,用于完成各种维护任务,如将块...

2011-10-23 23:12:00 76

《Oracle编程艺术》学习笔记(10)-SGA,PGA和UGA

Oracle有3个主要的内存结构:系统全局区(System Global Area,SGA)是一个很大的共享内存段,几乎所有Oracle进程都要访问这个区中的某一点。进程全局区(Process Global Area,PGA)是一个进程或线程专用的内存,其他进程/线程不能访问。用户全局区(User Global Area,UGA):这个内存区与特定的会话相关联,保存会话的状态。如果使用共享服务器,...

2011-10-23 23:03:00 58

《Oracle编程艺术》学习笔记(9)-Oracle中的文件-数据文件

在 Oracle 中,可以用4 种文件系统机制存储数据。(一个数据库中可能包含下述所有类型文件)·“Cooked”操作系统(OS)文件系统这些文件存放在OS的文件系统中。可以使用OS工具来移动文件。Cooked 文件系统通常也会缓存,这说明在你读写磁盘时,OS会为你缓存信息。·原始分区(raw partitions,也称裸分区)这不是文件,而是原始磁盘。不能用OS工具查看其内容。它们就...

2011-10-23 22:55:00 58

《Oracle编程艺术》学习笔记(8)-Oracle中的文件-警告日志文件

告警文件位于BACKGROUND_DUMP_DEST参数指定的目录下,文件名alert_<ORACLE_SID>.log。另外,11g之后,警告文件还另外生成一个xml版本,位于如下语句指定的目录下:select * from v$diag_info where name='Diag Alert';11g之后,可以通过ADRCI工具(位于$ORACLE_HOME/bin目录...

2011-10-23 22:52:00 53

《Oracle编程艺术》学习笔记(7)-Oracle中的文件-Trace文件

如果一个系统的执行效率比较低,一个比较好的方法是通过跟踪用户的会话并且使用tkprof工具使用排序功能格式化输出,从而找出有问题的SQL语句。例如首先从os上利用top命令找到当前占用cpu资源最高的一个进程的PID号9999;然后在数据库中根据PID号找到相应的sid和serial#select s.sid,s.serial# from v$session s,v$process p...

2011-10-23 22:51:00 47

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除