NinGoo's Notes | Database & Datawarehouse
===========================================================
===========================================================
个人独立blog(www.ningoo.net)开通,这里从即日其停止更新
NinGoo 发表于:2007.05.19 19:56 ::分类: ( Miscellanea ) ::阅读:(1202次) :: 评论 (1)
===========================================================
===========================================================
售票员:三桥上来的乘客,票子买起来咧
顾客:我到先锋药厂
售票员:哪里?
顾客:先锋药厂你不知道?
售票员:不知道
顾客:真不知道?假不知道?新先锋药厂,好大一个药厂你不知道?
售票员:真不知道。
顾客:不知道,叫你们经理给你们培训,连先锋药厂这么大一个厂都不知道,你还当什么驾驶员?

NinGoo 发表于:2007.05.18 13:54 ::分类: ( Miscellanea ) ::阅读:(14181次) :: 评论 (1)
===========================================================
===========================================================

在数据库优化中,索引的重要性不言而喻。但是,在性能调整过程中,一个索引是否能被查询用到,在索引创建之前是无法确定的,而创建索引是一个代价比较高的操作,尤其是数据量较大的时候。

虚拟索引不是物理存在的,它并不会创建实际的索引段,只是在数据字典中加了一个索引的记录,使得优化器能够意识到一个索引的存在,从而判断是否使用该索引作为访问路径。当然,实际上最终查询的访问路径是不会使用该虚拟索引的。

所以,虚拟索引的用处就是用来判断一个索引对于sql的执行计划的影响,尤其是对整个数据库的影响,从而判断是否需要创建物理索引。

oracle文档中并没有提到虚拟索引的创建语法,实际上就是普通索引语法后面加一个nosegment关键字即可,B*Tree index和bitmap index都可以。

 查看全文

NinGoo 发表于:2007.05.16 11:25 ::分类: ( Oracle ) ::阅读:(1184次) :: 评论 (2)
===========================================================
===========================================================

对于Oracle的commit机制,相信大家都已经非常的熟悉了。Oracle对于commit采取了同步写事务log的方式,也就是说,一旦发出commit命令,那么必须等待事务相关的所有redo都已经从log buffer写出到redo logfile以后,才会控制权返回发出commit的进程。

 查看全文

NinGoo 发表于:2007.05.15 22:50 ::分类: ( Oracle ) ::阅读:(978次) :: 评论 (0)
===========================================================
===========================================================

UROWID(Universal Rowid)表示一行数据的逻辑地址。一般情况下,索引组织表(IOT)和远程数据库(可以是非Oracle数据库)中的表需要用到UROWID。

 查看全文

NinGoo 发表于:2007.05.15 22:36 ::分类: ( Oracle ) ::阅读:(972次) :: 评论 (0)
===========================================================
===========================================================

Oracle常用dump命令,记录一下备查。

 查看全文

NinGoo 发表于:2007.05.15 11:07 ::分类: ( Oracle ) ::阅读:(2202次) :: 评论 (0)
===========================================================
===========================================================

版本:

SYS@ning>select * from v$version;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Prod
PL/SQL Release 10.2.0.3.0 - Production
CORE 10.2.0.3.0 Production
TNS for 32-bit Windows: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production

场景:

执行set autotrace on以后,在生成执行计划的部分报错:ORA-00600: internal error code, arguments: [kokle_lob2lob13:input mismatch], [1], [], [], [], [], [], []

使用alter session set sql_trace=true得到的trace文件中,导致错误产生的语句为:

ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [kokle_lob2lob13:input mismatch], [1], [], [], [], [], [], []
Current SQL statement for this session:
SELECT /*+ opt_param('parallel_execution_enabled', 'false') */
/* EXEC_FROM_DBMS_XPLAN */ id, position, depth, operation, options, object_name, cardinality, bytes, temp_space, cost, io_cost, cpu_cost , time, partition_start, partition_stop, object_node, other_tag, distribution, projection, access_predicates, filter_predicates , other, qblock_name, object_alias, nvl(other_xml, remarks), null, null, null, null, null, null, null,
null, null, null, null, null,
null, null, null, null from PLAN_TABLE where plan_id = (select max(plan_id)
from PLAN_TABLE where id=0 and statement_id = :stmt_id)
order by id

 查看全文

NinGoo 发表于:2007.05.14 11:29 ::分类: ( Oracle ) ::阅读:(2193次) :: 评论 (0)
===========================================================
===========================================================

前两天由于电脑中毒,ghost恢复了系统,重装msn8.1以后,一直无法登录,错误代码80048820,扩展错误代码 80048412,说是防火墙阻止了MSN的登录,于是将宽带连接上的Internet连接防火墙禁用,还是不行。google/baidu了下,发现这个错误还是蛮普遍的,所以很快找到了原因,系统时间不对!系统时间不知道怎么的变成了2005年,改正后登录正常。

注销,再将系统时间改成2005年,再次登录,ok。但是退出msn程序后再打开登录,又不行了。说明对于系统时间的验证在程序打开,第一次成功登录之前需要做校验的。只是为什么报防火墙的错误来误导用户,则需要问MS了^_^


NinGoo 发表于:2007.05.11 23:20 ::分类: ( Miscellanea ) ::阅读:(16796次) :: 评论 (30)
===========================================================
===========================================================

在Oracle10g之前,优化SQL是个比较费力的技术活,不停的分析执行计划,加hint,分析统计信息等等,当然也有SQL调优辅助工具可以使用,只是要么价格昂贵,要么效果不佳。在10g中,Oracle推出了自己的SQL优化辅助工具,这就是新的DBMS_SQLTUNE包。执行DBMS_SQLTUNE包进行sql优化需要有advisor的权限:

SYS@ning>grant advisor to ning;

Grant succeeded.

使用DBMS_SQLTUNE包进行SQL优化,大致可以分为四个步骤:

  • 创建优化任务
  • 执行优化任务
  • 显示优化任务的结果
  • 按照建议执行优化
 查看全文
NinGoo 发表于:2007.04.30 10:51 ::分类: ( Oracle ) ::阅读:(1280次) :: 评论 (0)
===========================================================
===========================================================

在Oracle10g之前,对于dual表的任何操作都需要执行一个全表扫描,即使我们只是想获得一些函数的返回值。这个全表扫描的操作是需要一定的代价的。

 查看全文

NinGoo 发表于:2007.04.26 13:48 ::分类: ( Oracle ) ::阅读:(1055次) :: 评论 (0)
===========================================================
===========================================================

一、什么是redo

redo log记录了数据库所有变更的历史记录,在对数据库做任何的修改之前,都必须先生成redo,在将任何脏数据库写入datafile之前,都必须保证该脏数据库对应的redo已经写入到redo log file中。一个事务commit的时候,必须保证该事务中产生的所有redo都已经写入到redo log file中。

Oracle的redo机制是一种逻辑和物理日志结合的机制,其内容包括:

  • DML语句导致的数据库变更,但是不包括DML语句本身;
  • DDL语句导致的数据字典的变更,同时包含DDL语句本身(?);
  • 递归语句导致的数据库变更
 查看全文
NinGoo 发表于:2007.04.26 09:55 ::分类: ( Oracle ) ::阅读:(1589次) :: 评论 (1)
===========================================================
===========================================================

在Oracle10g之前,Oracle虽然提供了类似帐号认证,授权以及审计等机制来保证数据库中的数据安全性,但是这些机制都是Oracle运行状态下提供的。对于最终保存在数据文件中的数据,基本上等于是明文保存的,虽然不同的数据类型在存储到数据文件中的格式有区别,但实际上这些存储格式已经广为人知,也有一些工具能够直接从数据文件中读取数据,比如官方的DUL和网友d.c.b.a开发的AUL等。

 查看全文

NinGoo 发表于:2007.04.25 14:03 ::分类: ( Oracle ) ::阅读:(1375次) :: 评论 (0)
===========================================================
===========================================================

出处:http://www.juliandyke.com/

 查看全文

NinGoo 发表于:2007.04.25 09:18 ::分类: ( Scripts ) ::阅读:(944次) :: 评论 (0)
===========================================================
===========================================================

在SQL Server2000以前,如果数据库的CPU使用率突然达到100%,可能会令DBA束手无策,平时强大的企业管理器和查询分析器甚至根本无法再连入服务器,无奈之下也许只有强行重启服务,但重启服务造成的系统中断可能会让你的Boss相当不满,而失去的现场信息可能给排查原因造成困难。

微软也意识到了这个问题,SQL Server 2005中提供了一个叫做Dedicated Administration Connection(DAC)的特性,可以让你在这种情况下连进服务器。

 查看全文

NinGoo 发表于:2007.04.23 09:24 ::分类: ( SQL Server ) ::阅读:(1144次) :: 评论 (0)
===========================================================
===========================================================

SQL Server 2005是微软五年磨一剑的产品,推出之后赞誉声一片。确实,相比sql server 2000,2005有了长足的进步,算是从娃娃长大成人了,可是,一些儿时的坏习惯,依然如故啊。

 查看全文

NinGoo 发表于:2007.04.20 13:22 ::分类: ( SQL Server ) ::阅读:(987次) :: 评论 (1)
自我介绍
新闻聚合
博客日历
文章归档...
最新发表...
最新评论...
最多阅读文章...
最多评论文章...
博客统计...
Blog信息
网站链接...