oracle系统

oracle优化常用经典参考

匿名 (未验证) 提交于 2019-12-03 00:36:02
2- 2- oracle 3 cpu sql cpu io 如果相应时间慢 ; 改变系统值 = 产生 trace session sys trace 5-dba   dba_tables,dba_tab_colums,dba_indexes,index_stats 系统相关视图 v$event_name 数据库设计 tablespace tablespace I/O 7 可以通过设置 Oracle I/O 参数如下: DB_FILE_MULTIBLOCK_READ_COUNT striping striping 可以通过设置 Oracle I/O 6 3 大于 6 v$session_longops 查看全表扫描的记录条数 FAST_START_MTTR_TARGET Oracle Oracle 9 解决办法 : LOG_ARCHIVE_MAX_PROCESSES 通过: V$log_file V$log 提高 sql 11 hard sql sql sql 13 v$sgastat 决定是否要扩大共享内存 5 sql sql sql ddl sql sql reloads invalidations reloads 太小 sql AREA ’ 调整 14 sql 将以上两项值相加基本就是估算的 查看共享池信息 Shared_pool_reserved_size 16 不能太小

oracle查询优化

匿名 (未验证) 提交于 2019-12-03 00:34:01
原则一:注意WHERE子句中的连接顺序 Oracle采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾. 尤其是“主键ID=?”这样的条件。 SQL Select语句完整的执行顺序: 1、from子句组装来自不同数据源的数据; 2、where子句基于指定的条件对记录行进行筛选; 3、group by子句将数据划分为多个分组; 4、使用聚集函数进行计算; 5、使用having子句筛选分组; 6、计算所有的表达式; 7、使用order by对结果集进行排序。 原则二: SELECT子句中避免使用 ‘ * ‘ ORACLE在解析的过程中, 会将'*' 依次转换成所有的列名, 这个工作是通过查询数据字典完成的, 这意味着将耗费更多的时间 。 简单地讲,语句执行的时间越短越好(尤其对于系统的终端用户来说)。而对于查询语句,由于全表扫描读取的数据多,尤其是对于大型表不仅查询速度慢,而且对磁盘IO造成大的压力,通常都要避免,而避免的方式通常是使用索引Index。 使用索引的优势与代价: 优势: 1)索引是表的一个概念部分,用来提高检索数据的效率,ORACLE使用了一个复杂的自平衡B-tree结构. 通常,通过索引查询数据比全表扫描要快.

国产数据库发展现状分析

匿名 (未验证) 提交于 2019-12-03 00:22:01
原作者介绍 晓军 1992年加入Sybase中国,之后曾在Informix、 IBM任职, 现在就职于Oracle。专注于数据库和数据仓库十余年。 导语 从上世纪90年代开始,国产数据库的开发就不断被人提起,国内已有不少企业、团体在这个方面做了不少的投入。在此,我们与大家分享一下对几个数据库国产化途径的看法。我们主要讨论自主研发、引进代码和互联网厂商提供的云上数据库。 自主研发 国内自主研发关系型数据库的企业、单位基本上都是发源于上世纪90年代的,而且都是以大学、科研机构为主。到今天,有代表性的厂商有: 南大通用(Gbase 8a)- 南开大学的背景,2010年左右自主研发的,基于列式存储的,面向数据分析、数据仓库的数据库系统。 其他没有列出的,属于在下孤陋寡闻,绝无贬低的意思。 这些公司的发展分为两个阶段,以2007年作为分界线。前一个阶段集中在20世纪90年代,公司的出发点就是开发一款通用的,主要面向OLTP的关系型数据库。在那个年代,中国的人工成本还是比较低的,国外厂商的数据库,如:Oracle,Sybase,Informix,DB2都算是成本较高的产品。很多人认为,只要做出功能、性能、稳定性合适的国产数据库,就能有一定的市场,至少价格能够有优势;即便市场不成功,作为科研教学也有一定价值,至少申请科研经费和政府补贴是个好题材。 但是,这么些年下来

oracle大数据量迁移快速导出:利用sqluldr2导出数据的方法

匿名 (未验证) 提交于 2019-12-03 00:19:01
亲测使用的是windows10 64位系统 首先下载sqluldr2.exe windows系统可以点击链接下载 百度网盘链接: https://pan.baidu.com/s/1A9OUi4WlNT61XZzw-dpGZw 密码: 7mza 也可自行百度安装包 下载后根据系统使用对应安装包 1、首先将sqluldr2.exe复制到到$ORACLE_HOME的bin目录,即可开始使用 在CMD中执行以下语句 2、使用sql语句导出数据 sqluldr2 . exe USER =数据库用户名/数据库密码 @tns QUERY = "select /*+ parallel(2) */ *from hh.ent_person" table = ent_person head = yes FILE = C : \ent_person . txt p.s. head=yes表示第一行为表头;并且query也可以写入一个文件然后使用sql选项。 默认分隔字符为逗号,如果列中有特殊字符,可使用field选项指定新的分隔字符。 \r=0x0d \n=0x0a |=0x7c ,=0x2c, \t=0x09, :=0x3a, #=0x23, "=0x22 '=0x27 3、使用sql文件导出数据 sqluldr2 . exe USER =用户名/密码 @tns sql = D : \tmp . sql

oracle大数据量迁移快速导出:利用sqluldr2导出数据的方法

匿名 (未验证) 提交于 2019-12-03 00:18:01
亲测使用的是windows10 64位系统 首先下载sqluldr2.exe windows系统可以点击链接下载 百度网盘链接: https://pan.baidu.com/s/1A9OUi4WlNT61XZzw-dpGZw 密码: 7mza 也可自行百度安装包 下载后根据系统使用对应安装包 1、首先将sqluldr2.exe复制到到$ORACLE_HOME的bin目录,即可开始使用 在CMD中执行以下语句 2、使用sql语句导出数据 sqluldr2 . exe USER =数据库用户名/数据库密码 @tns QUERY = "select /*+ parallel(2) */ *from hh.ent_person" table = ent_person head = yes FILE = C : \ent_person . txt p.s. head=yes表示第一行为表头;并且query也可以写入一个文件然后使用sql选项。 默认分隔字符为逗号,如果列中有特殊字符,可使用field选项指定新的分隔字符。 \r=0x0d \n=0x0a |=0x7c ,=0x2c, \t=0x09, :=0x3a, #=0x23, "=0x22 '=0x27 3、使用sql文件导出数据 sqluldr2 . exe USER =用户名/密码 @tns sql = D : \tmp . sql

修改Oracle字段顺序

匿名 (未验证) 提交于 2019-12-03 00:18:01
Oracle数据库在创建表之后,是不支持用工具或代码直接修改字段的顺序的,但还是有其他方式修改的。比较流行的有以下两种方式: 一、 1.先备份要修改的表的数据,删除原始表。 2.重新新建数据表,按自己想要的顺序建表,并还原备份数据。 以上方法比较麻烦,工作量大,不推荐。 二、 1.用sys或system权限登录数据库。 2.在oracle中每张表在系统中都对应一个id,所以查询出需要修改表的id。 select object_id from all_objects where owner = 'TEST_03' and object_name = 'NX_JYYC' ; 注意:TEST_03是用户名,NX_JYY是表名,参数一定要大写。 3.通过object_id查询出表的信息。 select obj#, col#, name from sys.col$ where obj# = '99650' order by col#; 4.修改字段在表中的顺序,即col#的值。 update sys.col$ set col#= 2 where obj#= 99650 and name= 'YCRQ' ; update sys.col$ set col#= 6 where obj#= 103756 and name= 'COMPANY_ZCH' ; 5.重启数据库服务。 文章来源:

Oracle:使用PL-SQL登录时报ORA-12541:无监听程序的解决办法

匿名 (未验证) 提交于 2019-12-03 00:18:01
背景: 在自己公司安装的Oracle,当时Oracle的监听地址都是写的公司的地址 后来由于项目需要,办公地点转移到了客户处, 大概有半年没有以sys用户登录数据库了。 最近在上下班途中学习Django,中间涉及到数据库的连接,今天想新建个用户,专门负责Django的练习。 结果使用PL/SQL登录管理员用户时,报ORA-12541:无监听程序。 我是顺着下面的步骤解决问题的: Step1.尝试登录SQL Plus 结果:可以登录成功。说明密码没有问题,继续查找问题原因。 Step2.查看监听程序是否正在启动 方法:在w10系统左下角的输入框中输入service,进入服务程序,查看Oracle的监听是否已启动 结果:监听处于停止状态,如下图所示: 右键,点击【重新启动】。 结果:系统报:启动后又自动停止(具体说的啥我也不记得了,就是无法启动,抱歉之前没留截图) Step3. 尝试修改监听文件 方法:去以下路径中..\Oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN 查找listener.ora文件 将127.0.0.1加入监听文件中。 结果:保存后,重新登录,仍会报错。 Step4.尝试重新配置监听 打开Oracle的Net Manager重新配置监听 结果:登录时仍会报错 Step5.运维同事建议我在登录时数据库一栏输入小写的orcl

易飞ERP API接口调用DEMO

匿名 (未验证) 提交于 2019-12-03 00:15:02
一、使用场景: 1、需要开放ERP数据给第三方系统对接,如APP手机端开发,MES,OA等; 2、接口按现在主流开发,restful风格,传JSON数据,跨平台,不限开发工具; 3、不限易飞ERP,支持大部分主流数据库,包括Microsoft SQL Server、Oracle、MySQL、MariaDB、PostgreSQL、DB2、SQL Anywhere、Firebird、SQLite等 二、优点 : 1、只要会SQL就可以开放需要的数据,不需要编程基础。如图: 三、测试DEMO: 下载地址: 点击 。 来源:博客园 作者: redhat588 链接:https://www.cnblogs.com/redhat588/p/11769392.html

如何查看oracle用户具有的权限和角色

匿名 (未验证) 提交于 2019-12-03 00:14:01
1.查看所有用户: select * from dba_users; select * from all_users; select * from user_users; 2.查看用户或角色系统权限(直接赋值给用户或角色的系统权限): select * from dba_sys_privs; select * from user_sys_privs; 3.查看角色(只能查看登陆用户拥有的角色)所包含的权限 sql>select * from role_sys_privs; 4.查看用户对象权限: select * from dba_tab_privs; select * from all_tab_privs; select * from user_tab_privs; 5.查看所有角色: select * from dba_roles; 6.查看用户或角色所拥有的角色: select * from dba_role_privs; select * from user_role_privs; 7.查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限) select * from V$PWFILE_USERS 比如我要查看用户 wzsb的拥有的权限: SQL> select * from dba_sys_privs where grantee='WZSB';

Oracle密码中含有特殊字符时exp,imp的使用

匿名 (未验证) 提交于 2019-12-03 00:13:02
一、oracle中copy from的用法 数据库 二、数据泵导出导入(EXPDP和IMPDP) Oracle Database 10g以后引入了最新的数据泵(Data Dump)技术,使DBA或开发人员可以将数据库元数据(对象定义)和数据快速移动到另一个oracle数据库中。 数据泵导出导入(EXPDP和IMPDP)的作用  1、实现逻辑备份和逻辑恢复。  2、在数据库用户之间移动对象。  3、在数据库之间移动对象  4、实现表空间搬移。 数据泵导出导入与传统导出导入的区别: 在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP.使用EXPDP和IMPDP时应该注意的事项; EXP和IMP是客户段工具程序,它们既可以在客户端使用,也可以在服务器段使用。 EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用 IMP只适用于EXP导出文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出文件,而不适用于EXP导出文件。 今天我在导入同事给我的数据文件时,总是报IMP-00038错误,提示,无法转换为环境字符集句柄,造成这种错误的原因一般是数据库版本不匹配,但是我们使用的都是oracle11g,就排除了这种可能