分析函数Ratio_to_report分解!
分析函数Ratio_to_report( ) over()使用说明表中需要计算单项占比:比如单项在部门占比多少,单项在公司占比多少。特别是在财务单项计算,部门个人薪水计算上。 Ratio_to_report() 括号中就是分子,over() 括号中就是分母,分母缺省就是整个占比。Ratio_to_report 一般结合partition by 使用。(一)举例子说明:表emp,dept,两表关联列为 deptnocreate,insert into 步骤省略。SQL> select * from emp; EMPNO DEPTNO SALARY--------------------------------------- ----------------------------
重复数据:选择,删除,保留
重复数据:选择,删除,保留min(rowid) max(rowid) 2010-12-30Database:oracle9i表:peng_tb_vip由于表数据太多,不便于选出来,故count;Select count(*) from peng_tb_vipSQL> Select count(*) from peng_tb_vip;COUNT(*)----------152(一):整个行数据重复如果整个表peng_tb_vip 行重复,则加distinct,,即可去掉重复的数据。Select distinct * from peng_tb_vip;(二)多个字段重复字段:corpid,cust_code;l 生成临时表CREATE TABLE PENG_TB_VIP2 AS SELECT * FROM PENG_TB_VIP;l
round (number) and round(date)
SQL> select add_time,round (add_time,'yyyy') aa from peng3 2 where rownum<=2;ADD_TIME AA----------- -----------2007-7-27 2 2008-1-12007-7-27 2 2008-1-1SQL> select add_time,round (add_time,'mm') aa from peng3 2 where rownum<=2;ADD_TIME AA----------- -----------2007-7-27 2 2007-8-12007-7-27 2 2007-8-1SQL> select add_time,round (add_time,'dd') aa from peng3 2 where rownum<=2;ADD_TIME AA----------- -----------2007-7-27 2 2007-7-282007-7-27 2 2007-7-28[@more@]
转载:limits.conf解释说明
linux /etc/security/limits.conf的相关说明linux limits.conf 配置 limits.conf 文件实际是 Linux PAM(插入式认证模块,Pluggable Authentication Modules)中 pam_limits.so 的配置文件,而且只针对于单个会话。limits.conf的格式如下:username|@groupname type resource limitusername|@groupname:设置需要被限制的用户名,组名前面加@和用户名区别。也可以用通配符*来做所有用户的限制。type:有 soft,hard 和 -,soft 指的是当前系统生效的设置值。hard 表明系统中所能设定的最大值。soft 的限制不能比har 限制高。用 - 就表明同
lock_sga and pre_page_sga设置
使Oracle的SGA常驻物理内存 Oracle中的lock_sga和pre_page_sga这两个静态初始化文件参数是用来指示SGA如何使用操作系统内存的。在Linux上启动Oracle数据库的时候,如果设置了lock_sga=true,那么就有可能碰到如下的报错信息: SQL> startup; ORA-27102: out of memory Linux-x86_64 Error: 12: Cannot allocate memory 这是因为Linux操作系统对应用程序使用内存有一些限制,在SHELL中使用ulimit命令可以查看到如下的信息: [oracle@dev111 ~]$ ulimit -a | grep memory max locked memory (kbytes, -l) 32 max memory size
smon 和pmon区分
System MonitorProcess Name: SMONMax Processes: 1This process is responsible for instance recovery, if necessary, at instance startup. SMON also cleans up temporary segments that are no longer in use. It also coalesces contiguous free extents in dictionary managed tablespaces that have PCTINCREASE set to a non-zero value. SMON wakes up about every 5 minutes to perform housekeeping activities. SMON must always be running for an instance.Process MonitorProcess Name: PMONMax Processes: 1This process
SYS/SYSTEM密码丢失、解决
SYS/SYSTEM密码丢失、解决说明:最近公司让我维护一台新的服务器这台服务器数据库是ORACLE 9I让我为难的是,公司之前的维护者尽然没有留下用户密码!我根本没有办法登录。我想采用默认登录修改密码,但是确显示 no privilegesconn /as sysdbano privileges编辑:sqlnet.ora SQLNET.AUTHENTICATION_SERVICES= (NTS)将NTS修改为NONE也报上面的错误。这个办法没有成功,至今还没有弄明白,如果那个高人能指导我,不胜感激!1:之前碰到类似的问题,我是这样修改的: sqlplus /nologconn /as sysdba;alter user system identified by 123;2:最
ALERT.LOG查找、编辑、CP、清空
ALERT.LOG查找、编辑、CP、清空我用的是公司的服务器,作如下示范:DBA每天首要工作是要查看ALERT.LOG,这里会涉及查找ALERT_SID.LOG的位置,以及如何查看ALERT_SID.LOG,如何备份,如何定期清空日志,熟悉看日志的DBA都知道日志会不断增长,如果不定期清空,如果报错很多,就会日志增长非常快,而且VI打开的时候,比较繁琐;1:查找ALERT.log的位置:ORACLE用户登录数据库[oracle@DELL /]$ iduid=500(oracle) gid=500(oinstall) groups=500(oinstall),501(dba)[oracle@DELL /]$ sqlplus /nologSQL*Plus: Release 9.2.0.6.0 - Production o
redo在线增加日志组合成员
数据在写入数据文件,即写入磁盘之前,都是脏数据,脏数据保存在缓存区里,即保存在内存里面,数据在写入磁盘前,也即保存在重做日志文件里面,所有日志文件的大小显得很重要!经常由于日志组不够大,日志组成员少,日志组少,所有日志全部写满了,都还来不及checkpoint,还没有来得及写入数据文件就会造成数据库严重堵塞,甚至down.数据----脏数据——buffer_cache-----DBWR------数据文件1:查看日志组合成员SQL> select * from v$logfile; GROUP# STATUS TYPE---------- -------------- --------------MEMBER
linux_不常用命令
查看系统语言环境[root@DELL root]# localeLANG=en_US.UTF-8LC_CTYPE="en_US.UTF-8"LC_NUMERIC="en_US.UTF-8"LC_TIME="en_US.UTF-8"LC_COLLATE="en_US.UTF-8"LC_MONETARY="en_US.UTF-8"LC_MESSAGES="en_US.UTF-8"LC_PAPER="en_US.UTF-8"LC_NAME="en_US.UTF-8"LC_ADDRESS="en_US.UTF-8"LC_TELEPHONE="en_US.UTF-8"LC_MEASUREMENT="en_US.UTF-8"LC_IDENTIFICATION="en_US.UTF-8"LC_ALL=查看内存使用量和交换区使
AIX exp自动备份
OS:AIX $ oslevel4.3.2.0oracle:817非归档模式1:备份脚本hr1backup.sh$ cat hr1backup.shexport ORACLE_SID=hr1today=`date '+%y%m%d'`rm /databak/hr1$today.dmp.gzrm /databak/hr1$today.log/misfs/ora816/app/bin/exp system/1111@hr1 file=/databak/hr1$today.dmp log=/databak/hr1$today.log full=y buffer=64000 feedback=100000gzip /databak/hr1$today.dmp备份文件前,删除旧的备份,新的备份自动添加日期!2:crontab10 1 * * * /databak/hr1backup.sh每天凌晨1点10分,开始备份。[@more@]
LINUX-磁盘加载-实际应用
1:关闭服务器之前先一定要关闭数据库$export ORACLE_SID=mis$sqlplus /nologsql>conn /as sysdba;sql>shutdown immediate;2:关闭服务器#init 0或者#shutdown 3:插入磁盘将插槽灰尘擦干净,插入磁盘4:启动服务器5:查看磁盘信息检查磁盘是否检测到,命令用fdisk,而df -lh 是检测已经MOUNT的磁盘 [root@DELL root]# fdisk -lDisk /dev/sda: 293.3 GB, 293391564800 bytes255 heads, 63 sectors/track, 35669 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System/
AIX filesystems文件自动挂载
添加磁盘到挂载点/databak,以后需要编辑filesystems,vi /etc/filesystems/databak: dev = /dev/lv02 vfs = jfs log = /dev/loglv03 mount = automatic options = nodev,rw account = false如上面所设置 mount =automatic就可以自动挂载文件系统了。#lsvg datavg# lsvg datavgVOLUME GROUP: datavg VG IDENTIFIER: 000f9fadc72f51c1VG STATE: active PP SIZE: 256 me
fstab自动挂载
LINUX磁盘加载以后,需要编辑fstab文件,添加加载的磁盘。服务器重启以后,磁盘会自动加载 。# vi /etc/fstab1、fstab文件的作用文件/etc/fstab存放的是系统中的文件系统信息。当正确的设置了该文件,则可以通过"mount /directoryname"命令来加载一个文件系统,每种文件系统都对应一个独立的行,每行中的字段都有空格或tab键分开。同时fsck、 mount、umount的等命令都利用该程序。2、下面是/etc/fatab文件的一个示例行: fs_spec fs_file fs_type fs_options fs_dump fs_pass /dev/hda1 / ext2 def
索引总结(四)
6. 什么是复合索引6.1 复合索引定义 索引可以包含一个、两个或更多个列。两个或更多个列上的索引被称作复合索引。利用索引中的附加列,您可以缩小搜索的范围,但使用一个具有两列的索引不同于使用两个单独的索引。复合索引的结构与电话簿类似,人名由姓和名构成,电话簿首先按姓氏对进行排序,然后按名字对有相同姓氏的人进行排序。如果您知道姓,电话簿将非常有用;如果您知道姓和名,电话簿则更为有用,但如果您只知道名不姓,电话簿将没有用处。所以说创建复合索引时,应该仔细考虑列的顺序。对索引中的所有列执行搜索
索引总结(三)
4. 聚集索引和非聚集的区别聚集索引和非聚集索引的根本区别是数据记录的排列顺序和索引的排列顺序是否一致,聚集索引表记录的排列顺序与索引的排列顺序一致,优点是查询速度快,因为一旦具有第一个索引值的纪录被找到,具有连续索引值的记录也一定物理的紧跟其后,从而缩小了搜索范围,对于返回某一范围的数据效果最好。聚集索引的缺点是对表进行修改速度较慢,这是为了保持表中的记录的物理顺序与索引的顺序一致,而把记录插入到数据页的相应位置,必须在数据页中进行数据重排,降低了执行速度。 非聚集索引指定了表中记录的逻辑
索引总结(二)
2. 什么是聚集索引2.1 聚集索引定义聚集索引是根据数据行的键值在表中排序存储数据行。索引定义中包含聚集索引列。每个表只能有一个聚集索引。只有当表包含聚集索引时,表中的数据行才按排序顺序存储。如果表具有聚集索引,则该表称为聚集表。如果表没有聚集索引,则其数据行存储在一个称为堆的无序结构中。2.2 聚集索引的结构对于某个聚集索引,索引指向该聚集索引某个特定分区(数据页)的顶部。SQL Server 将在索引中向下移动以查找与某个聚集索引键对应的行。原因是聚集索引的索引顺序就是数据排列顺序。
linux 查看版本信息
#cat/proc/version这个是看gcc的版本信息。[root@DELL root]# cat /proc/versionLinux version 2.4.21-32.EL (bhcompile@crowe.devel.redhat.com) (gcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-52)) #1 SMP Fri Apr 15 21:02:58 EDT 2005查看内核#uname -a [root@DELL root]# uname -a Linux DELL 2.4.21-32.EL #1 SMP Fri Apr 15 21:02:58 EDT 2005 x86_64 x86_64 x86_64 GNU/Linux查看版本release信息,就是我们通常所说的REDHAT 3.0或者4.0#cat /etc/issue[root@DELL etc]# cat issueRed Hat Enterprise Linux AS release 3 (Ta
badblocks磁盘坏道检测
# badblocks -b 4096 -c 16 /dev/hdb3 -o /root/sdb.bad -s--b blocksize 指定磁盘的区块大小,单位为字节,默认值为“block 4K ”(4K/block)-c blocksize 每个区块检查的次数,默认是16次-f 强制在一个已经挂载的设备上执行读写或非破坏性的写测试操作 (我们建议先umount设备,然后再进行坏道检测。仅当/etc/mtab出现误报设备挂载错误的时候可以使用该选项)-i file 跳过已经显示在file文件中的坏道,而不进行检测(可以避免重复检测)-o file 把检测结果输出到file文件-p number 重复搜寻设备,直到在指定通过次数内都没有找到新的坏
MINUS命令解析
minus用法:A表 MINUS B表,选择A表中不包含B表的内容;也就是选择:A表有的内容,而B表没有的内容;表peng,和表peng2一模一样;SQL> select count(*) from peng; COUNT(*)---------- 10000SQL> select count(*) from peng2; COUNT(*)---------- 10000SQL> select sheet_no,corpid ,depot_code from peng 2 minus 3 select sheet_no,corpid,depot_code from peng2 4 where rownum<=9990 5 ;SHEET_NO CORPID DEPOT_CODE-------------------- -------------------- ------------