数据库范式说明

原文链接

简介

      数据库范式在数据库设计中的地位一直很暧昧,教科书中对于数据库范式倒是都给出了学术性的定义,但实际应用中范式的应用却不甚乐观,这篇文章会用简单的语言和一个简单的数据库DEMO将一个不符合范式的数据库一步步从第一范式实现到第四范式。

继续阅读“数据库范式说明”

listagg 函数–oracle 11g release 2

本文描述了在oracle 11g release 2 版本中新增的listagg函数,listagg是一个实现字符串聚合的oracle内建函数。作为一种普遍的技术,网络上也有多种实现字符串聚合的方法。本文会首先介绍listagg函数,最后会拿这些方法与listagg进行性能方面的对比。

继续阅读“listagg 函数–oracle 11g release 2”

(转)oracle undo回滚段详解

原文链接

1.Undo是干嘛用的?   

在介绍undo之前先说一下另外一个东西 transaction ,翻译成交易或事务。我们在进行一个事务的过程中需要申请许多资源,一个复杂的事务也需要很多步来完成。那么一个复杂的事务是只有两个结果,要么成功,要么失败(相当于从来没发生过)。
继续阅读“(转)oracle undo回滚段详解”

oracle释放锁操作

  1. 释放锁表

    • 查看锁表进程SQL语句1:
    select sess.sid, 
       sess.serial#, 
       lo.oracle_username, 
       lo.os_user_name, 
       ao.object_name, 
       lo.locked_mode 
       from v$locked_object lo, 
       dba_objects ao, 
       v$session sess 
    where ao.object_id = lo.object_id and lo.session_id = sess.sid; 
    
    • 查看锁表进程SQL语句2:
    select * from v$session t1, v$locked_object t2 where t1.sid = t2.SESSION_ID; 
    
    • 杀掉锁表进程:
      如有記錄則表示有lock,記錄下SID和serial# ,將記錄的ID替換下面的738,1429,即可解除LOCK
      alter system kill session '738,1429';