博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2007年6月20日

摘要: 大家都在讨论关于数据库优化方面的东东,刚好参与开发了一个数据仓库方面的项目,以下的一点东西算是数据库优化方面的学习+实战的一些心得体会了,拿出来大家共享。欢迎批评指正阿!SQL语句:是对数据库(数据)进行操作的惟一途径;消耗了70%~90%的数据库资源;独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低;可以有不同的写法;易学,难精通。SQL优化:固定的SQL书写习惯,相同的查询尽量保持相同,存储过程的效率较高。应该编写与其格式一致的语句,包括字母的大小写、标点符号、换行的位置等都要一致ORACLE优化器:在任何可能的时候都会对表达式进行评估,并且把 阅读全文

posted @ 2007-06-20 10:11 徐正柱- 阅读(452) 评论(0) 推荐(0)

摘要: 我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为笔者学习、摘录、并汇总部分资料与大家分享!(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效):ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最... 阅读全文

posted @ 2007-06-20 10:11 徐正柱- 阅读(341) 评论(0) 推荐(0)

摘要: 如何配置才能使客户端连到数据库: 要使一个客户端机器能连接oracle数据库,需要在客户端机器上安装oracle的客户端软件,唯一的例外就是java连接数据库的时候,可以用jdbc thin模式,不用装oracle的客户端软件。加入你在机器上装了oracle数据库,就不需要在单独在该机器上安装oracle客户端了,因为装oracle数据库的时候会自动安装oracle客户端。 用过sql server数据库然后又用oracle的新手可能会有这样的疑问:问什么我用sql server的时候不用装sql server的客户端呢?原因很简单,sql server也是microsoft的,它在操... 阅读全文

posted @ 2007-06-20 10:10 徐正柱- 阅读(389) 评论(0) 推荐(0)

摘要: 查询 SELECT语句用于从数据库中查询数据,当在PL/SQL中使用SELECT语句时,要与INTO子句一起使用,查询的返回值被赋予INTO子句中的变量,变量的声明是在DELCARE中。SELECT INTO语法如下: SELECT [DISTICT|ALL]{*|column[,column,...]} INTO (variable[,variable,...] |record) FROM {table|(sub-query)}[alias] WHERE............ PL/SQL中SELECT语句只返回一行数据。如果超过一行数据,那么就要使用显式游标(对游标的讨论我们... 阅读全文

posted @ 2007-06-20 10:10 徐正柱- 阅读(306) 评论(0) 推荐(0)

摘要: 常量1. 定义常量的语法格式常量名 constant 类型标识符 [not null]:=值;常量,包括后面的变量名都必须以字母开头,不能有空格,不能超过30个字符长度,同时不能和保留字同名,常(变)量名称不区分大小写,在字母后面可以带数字或特殊字符。括号内的not null为可选参数,若选用,表明该常(变)量不能为空值。2. 实例在【SQLPlus Worksheet】中执行下列PL/SQL程序,该程序定义了名为pi的数字型常量,长度为9。执行结果如图9.6所示。―――――――――――――――――――――――――――――――――――――declarepi constant number(9) 阅读全文

posted @ 2007-06-20 10:09 徐正柱- 阅读(944) 评论(0) 推荐(0)

摘要: 最近考虑到我们的数据库端写存储过程关于临时表使用的情况,由于我们现在还不清楚数据库端到底是怎么处理的,是否和Sql Server的处理方式相同,是否会存在隐患等等一些问题,为了避免将来不必要的麻烦我做了深入的研究和查看了一些权威的资料,现在和大家共享,希望大家在处理 Oracle临时表是注意一下: 首先是创建临时表的语法: CREATE GLOBAL TEMPORARY TABLE table"... 阅读全文

posted @ 2007-06-20 10:09 徐正柱- 阅读(453) 评论(0) 推荐(0)

摘要: 在oracle中创建存储过程和sybase及sql server下的语法有些不一致之处。下面就此用不同的数据库下存储过程的例子来演示之。---------------------------oracle下:CREATE OR REPLACE FUNCTION MY_FUNC(P1 IN MY_TABLE.YY%TYPE,P2 IN MY_TABLE.NN%TYPE,P3 VARCHAR(100))... 阅读全文

posted @ 2007-06-20 10:08 徐正柱- 阅读(948) 评论(0) 推荐(0)

摘要: 在oracle DB 中通过JOB 调用存储过程:create or replace procedure addageis begininsert into test_work_age(work_age_id, work_age_code, work_age_name, created_date)v... 阅读全文

posted @ 2007-06-20 10:07 徐正柱- 阅读(503) 评论(0) 推荐(0)

摘要: oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中,可以运行sql*plus命令与sql*plus语句。 我们通常所说的DML、DDL、DCL语句都是sql*plus语句,它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,并且只能保存一条最近执行的sql语句,我们可以对保存在sql buffer中的sql 语句进行修改,然后再次执行,sql*plus一般都与数据库打交道。 除了sql*plus语句,在sql*plus中执行的其它语句我们称之为sql*plus命令。它们执行完后,不保存在sql buffer的内存区域中,它们一般用来对.. 阅读全文

posted @ 2007-06-20 10:07 徐正柱- 阅读(471) 评论(0) 推荐(0)

摘要: 外部表External table 把一个普通的文本格式的OS文件看作是Oracle数据库的外部表,Oracle可以象普通表一样进行select 操作,可以建视图,可以与其他进行连接等,但不能对其进行DML操作,即该表是只读的!(10g里可借此导出数据至平面dmp文件)。External table和正规的表很相似,以下的几点需要注意: l 数据在数据库的外部组织,是操作系统文件。 l 操作系... 阅读全文

posted @ 2007-06-20 10:06 徐正柱- 阅读(794) 评论(0) 推荐(0)