当前位置:  数据库>其它
本页文章导读:
    ▪oracle sql_trace跟踪与使用tkprof工具分析       --设置当前会话,开启sql_trace alter session set sql_trace=TRUE; --设置trace文件标识,方便查找 ALTER SESSION SET tracefile_identifier='lubinsu'; --通过下面的语句来查询当前sql_trace文件的路径 SELECT d.value || '/' |.........
    ▪ROW LEVEL SECURITY(RLS) 性能问题      记得之前在HP 的时候,遇到一个ROW LEVEL SECURITY 的性能问题,当时也在CSDN发了一个博客,不过因为涉及用户信息泄密,所以把博客删除了。最近一个网友也遇到RLS性能问题 ……petma 19:58:06 .........
    ▪Nosql之MongoDB的下载安装和服务配置      1、下载mongodb的windows版本,有32位和64位版本(当然也有linux版本的),根据系统情况下载即可。下载地址:http://www.mongodb.org/downloads,这里我下载的是mongodb-win32-i386-2.4.0-rc1。 2、解压缩至任意.........

[1]oracle sql_trace跟踪与使用tkprof工具分析
    来源: 互联网  发布时间: 2013-11-07

当执行某条sql语句,或者执行某个过程/包的时候性能出现问题,我们可以通过sql_trace来跟踪它们的执行情况,在跟踪文件中输出了,整个会话,或者整个数据库的执行情况。

首先,我们需要开启sql_trace(有session级,也有database级别的,数据库级别的显然会非常耗费资源,一般情况也没有必要开启):

--设置当前会话,开启sql_trace
alter session set sql_trace=TRUE;
--设置trace文件标识,方便查找
ALTER SESSION SET tracefile_identifier='lubinsu';
--通过下面的语句来查询当前sql_trace文件的路径
SELECT d.value || '/' || lower(rtrim(i.instance, chr(0))) || '_ora_' ||
       p.spid || '.trc' AS "trace_file_name"
FROM   (SELECT p.spid
        FROM   v$mystat m, v$session s, v$process p
        WHERE  m.statistic# = 1
        AND    s.sid = m.sid
        AND    p.addr = s.paddr) p,
       (SELECT t.instance
        FROM   v$thread t, v$parameter v
        WHERE  v.name = 'thread'
        AND    (v.value = 0 OR t.thread# = to_number(v.value))) i,
       (SELECT VALUE FROM v$parameter WHERE NAME = 'user_dump_dest') d;


到指定目录下可以很方便地找到我们设置了标识的trace文件:


现在我随意执行一条语句试试:

--执行一条语句:

SELECT * FROM scott.emp a WHERE a.empno = 7900;

--关闭sql_trace

ALTER SESSION SET SQL_TRACE = FALSE;

--到oracle目录下查看下生成的文件里到底有哪些东西:


显然这文件的可读性是很差的,现在我们用tkprof来分析跟踪文件:

tkprof orclsid_ora_31518_lubinsu.trc


    
[2]ROW LEVEL SECURITY(RLS) 性能问题
    来源: 互联网  发布时间: 2013-11-07

记得之前在HP 的时候,遇到一个ROW LEVEL SECURITY 的性能问题,当时也在CSDN发了一个博客,不过因为涉及用户信息泄密,所以把博客删除了。最近一个网友也遇到RLS性能问题

……petma 19:58:06
我现在遇到一个比较郁闷的问题
……petma 19:59:23
是这样的,我们的系统,将用户分为了几类,每一类的权限策略是不一样的,然后数据查询的时候,我们先要调安全的方法,得到一个权限策略的SQL,然后再将这个SQL做为参数,传到真正的数据查询中
……petma 19:59:31
可是,加了这个SQL后,就非常慢
落落 19:59:53
ROW LEVEL SECURITY?
……petma 20:00:05
是的
落落 20:00:47
哈哈哈 我之前遇到过
落落 20:00:52
你在外企?
落落 20:01:03
这个好办
落落 20:01:11
你把 RLS 的 限制条件发一下给我看看
落落 20:01:20
是不是限制条件是一个子查询?
……petma 20:01:24

……petma 20:01:37
SELECT *
FROM (SELECT A.*, ROWNUM RN
FROM (
select b.* from os_form_base b,ttwo_wo_info t
where

t.form_id=b.form_id
and site_code in (
select resCode from (select * from(select dept_code as resCode,dept_name as resName from sec_dept)  WHERE  1!=1 OR  ((1=1 and resCode in('0001030102','0001030105','000103010501','00010301050101','000103010502','00010301050201','000103010503','00010301050301','000103010504','00010301050401','000103010505','00010301050501','000103010506','00010301050601','000103010507','00010301050701','000103010508','00010301050801','000103010509','00010301050901','000103010510','00010301051001','000103010511','00010301051101','000103010512','00010301051201','000103010514','0001030109','000103010901','00010301090101','000103010902','00010301090201','000103010903','00010301090301','000103010904','00010301090401','000103010905','00010301090501','000103010906','00010301090601','000103010907','00010301090701','000103010908','000103010909','000103010910','000103010911','00010301091101','00010301091102','00010301091103','00010301091104','000103011906','00010301190601','000103011907','00010301190701') )  or  (1!=1))  and resCode like '00010301%'))

order by t.form_id desc


) A
WHERE ROWNUM <= 15
)  WHERE RN > 0
……petma 20:01:56
这段用于权限控制
……petma 20:02:49
我也用PL/SQL F5看了下,把权限控制里的1!=1这种去掉后,里面的耗费减少了,但是查询时间没变化
落落 20:03:03
SQL优化不要去看cost
落落 20:03:10
也不要用PL/SQL 去看执行计划
……petma 20:03:12

落落 20:03:23
你 在限制条件里面 加一个 HINT
落落 20:03:31
/*+ no_unnest */
落落 20:03:33
试一试
……petma 20:03:45
这个我不会加,呆会去百度,加了这个之后呢
落落 20:03:57
加了再试一试
落落 20:04:02
不行再找我
……petma 20:04:07
OK,QQQ
落落 20:04:12
直接就在 SELECT 后面加上即可
落落 20:04:34
限制条件 里面的 SELECT 后面加
落落 20:04:46
而不是在 最开始的 SELECT 那里 加 小心点哈
……petma 20:05:44
where site_code in (select res_code 这里面加哈)
落落 20:07:50
where site_code in (select /*+ no_unnest */ res_code 这里面加哈)

落落 20:07:52

……petma 20:09:10
为什么一下子就非常快了
……petma 20:13:28
膜拜
落落 20:15:05
呵呵 来参加培训吧

 

作者:robinson1988 发表于2013-3-6 23:33:49 原文链接
阅读:0 评论:0 查看评论

    
[3]Nosql之MongoDB的下载安装和服务配置
    来源: 互联网  发布时间: 2013-11-07

1、下载mongodb的windows版本,有32位和64位版本(当然也有linux版本的),根据系统情况下载即可。下载地址:http://www.mongodb.org/downloads,这里我下载的是mongodb-win32-i386-2.4.0-rc1。

2、解压缩至任意硬盘分区目录:如,D:/DB/MongoDB,并在任意地方创建数据库文件的存放位置,比如D:/DB/MongoDB/db(启动mongodb服务之前需要必须创建数据库文件的存放文件夹,否则命令不会自动创建,而且不能启动成功。默认文件夹路径为c:/data/db.使用系统默认文件夹路径时,启动服务无需加--dbpath 参数说明,但文件夹还要手工创建)。

3、打开cmd命令行,进入D:/DB/MongoDB/bin目录,输入如下的命令启动mongodb服务,如图所示:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4、进入MongoDB进行简单的操作

(1)、启动mongo db,如图:

 

 

(2)、执行插入和查询,如图:

5、创建MongoDBwindows 服务,让系统自动启动服务。

(1)、创建服务

在MongoDB安装目录下创建logs目录,然后在CMD命令行输入如下命令:

D:\DB\MongoDB\bin>mongod --logpath D:\DB\MongoDB\logs\MongoDB.log --logappend

 --dbpath D:\DB\MongoDB\db --directoryperdb --serviceName MongoDB --install

效果图:

(2)、启动/停止服务

net start MongoDB

net stop MongoDB

(3)、删除服务

D:\DB\MongoDB\bin\mongod.exe --remove

作者:boonya 发表于2013-3-7 0:27:32 原文链接
阅读:17 评论:0 查看评论

    
最新技术文章:
▪gc buffer busy/gcs log flush sync与log file sync    ▪让你的PL/SQL更好用    ▪ADO.NET中的非脱机数据库查询
▪参数job_queue_processes与Oracle jobs    ▪11gR2游标共享新特性带来的一些问题以及_cursor...    ▪_library_cache_advice和latch:shared pool、latch:shared poo...
▪SQL: Date Utility    ▪DB2 分区表增加分区    ▪DB2第一步 — 创建表
▪oracle 数据库    ▪插入10万条记录测试    ▪rebuild index VS. rebuild index online
▪如何处理undo tablespace 表空间太大的问题    ▪ado执行存储过程中包含结果集获取输出参数为...    ▪oracle函数的demo
▪Entity Framework 学习建议及自学资源    ▪存储过程的编写    ▪Linux/Unix shell 自动发送AWR report(二)
▪第二章 Oracle恢复内部原理(基础数据结构)    ▪Redis源码学习之【Tcp Socket封装】    ▪Java Jdbc减少与Oracle之间交互提升批量处理性能...
▪南大通用GBase8a Vs Oracle11g 单机测试亲测    ▪oracle 中行列转换    ▪rhel下安装oracle10g+asm---测试环境搭建
▪Redis系列-主从复制配置    ▪MySQL索引与查询优化    ▪INDEX受到NULL值的影响
▪测试人员的SQL语言 系列    ▪SQL数据库基本语句    ▪MySQL Replication常见错误整理[持续更新...]
▪eclipse下建立esper的demo    ▪把oracle rac 转化为单机数据库    ▪Redis系列-存储篇sorted set主要操作函数小结
▪基本的SQL*Plus报表和命令    ▪druid简单教程    ▪11g调度--scheduler使用
▪EF基础一    ▪db2存储过程中循环语句while do的continue有没有...    ▪oracle 创建DBLINK
▪DB2数据库备份还原    ▪Warning: prerequisite DBD::mysql 1 not found错误解决方...    ▪innotop性能监视mysql,innodb工具
▪数据迁移:DataGuard配置    ▪QX项目实战-19.跨库数据同步    ▪Mysql EXPLAIN
▪Oracle 11g AWR 系列七:Active Session History (ASH) 报...    ▪Oracle 11G新特性(共36个)    ▪父子节点问题
▪OEM简介及按钮乱码问题    ▪NoSql之MongoDB的常用类管理    ▪ORA-39700: database must be opened with UPGRADE option
▪node.js 访问redis数据库,pub/sub    ▪使用DBMS_REDEFINITION在线重定义分区表    ▪SQL Developer 使用问题与解决方法汇总
▪oralce 11g dataguard 概念    ▪ORA-30004 错误处理    ▪oracle分组函数rollup,cube
▪Sql Developer 使用问题与解决方法汇总    ▪Configure Oracle Dataguard Primary-ASM to Physical-ASM    ▪Oracle Data Guard 理论知识
▪Control File 恢复    ▪Oracle数据文件收缩    ▪Oracle 11g AWR 系列五:如何生成 AWR 报告?
▪Wireshark数据包分析实战(第2版)    ▪MySql用户权限控制    ▪db2和oracle查询序列区别
▪更新blob字段的存储过程    ▪MySQLReport分析报告三    ▪DB2中的序列
▪Oracle中DBMS_RANDOM.STRING 的用法    ▪SQL SERVER无法安装成功,sqlstp.log文件提示[未发...    ▪Data Guard 部署物理备库的 10 大注意事项
▪万能数据库查询分析器使用技巧之(九)    ▪SQL 自定义Split函数    ▪视图 v$sql,v$sqlarea,$sqltext,v$sqltext_with_newlines 的...
▪Data Guard Standby_archive_dest 和 Log_archive_dest_n 的...    ▪机房收费系统数据库设计(一)    ▪利用putty的SSH tunnel连接Oracle
▪Redis系列-主从复制配置    ▪MySQL索引与查询优化    ▪INDEX受到NULL值的影响 iis7站长之家
▪写入到blob字段的存储过程    ▪关于JDBC中ResultSet接口的一点细节探究    ▪Data Guard 配置 Standby Redo Log
▪linux下redis的安装    ▪windows下redis的安装    ▪手动创建数据库步骤(简单翻译官方文档)
▪Ubuntu安装Mongodb    ▪SQL CLR应用    ▪redis的配置文件参数--详细说明
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3