`
Tristan_S
  • 浏览: 374160 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

oracle training 测试数据

 
阅读更多
Sqlplus sys/zhou215 as sysdba
Startup
Connect oracle/oracle


由于虚拟机是linux的 plsql没有linux的版本,需要通过本机连上虚拟机
配置
查看ip  /sbin/ifconfig -a   192.168.81.128
将虚拟机的ip填到net manager中的listner  通过netmgr命令
再通过lsnrctl start listener 启动listener
用  select name from v$database;  得到sid
这样就能通过 oracle sql developer来连接


Testtab1  200w 带索引
Testtab2  200w 带索引
Testtab3  400w 带索引  id not null    id很多都是1000
Testtab4  200w 带索引  id not null

Testtab5  10      不带索引    


----------高水位问题----------


select id from TESTTAB5;     8秒

analyze table TESTTAB5 COMPUTE statistics;

SELECT table_name, blocks, empty_blocks, num_rows FROM user_tables WHERE table_name = 'TESTTAB5';


    TABLE_NAME BLOCKS EMPTY_BLOCKS NUM_ROWS
1 TESTTAB5 74357 395 10

alter table TESTTAB5 move;


    TABLE_NAME BLOCKS EMPTY_BLOCKS NUM_ROWS
1 TESTTAB5 4 4 10

select id from TESTTAB5;     0秒


----------ID为varchar时 索引失效----------


select id from TESTTAB1 where id =1;   11秒

select id from TESTTAB1 where id ='1';   0秒

id是varchar的

在sqlplus中可以用set autotrace on 看到
TABLE ACCESS FULL   

在plsql developer中可以用
explain plan for
select id from TESTTAB1 where id ='1';
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
来查看到  INDEX RANGE SCAN


db中id是varchar类型,加了索引
Select * from table1 where id = 1;
这时候不会用到索引,会全表扫描。
补救方法   可以创建一个to_number的函数索引
设计db时要注意。



----------复合索引问题----------


Id id2 id3 为复合索引

select * from testtab2 where id=31;  0秒
select * from testtab2 where id2=31;  8秒
select * from testtab2 where id2=31 and id3=31; 9秒

只有在id有值的情况下,复合索引才有效

可以用hint语句 强制用索引

----------索引not null----------

当索引没有设置成not null时,
Order by id 是全表扫描的

explain plan for
select * from testtab4 order by id ;
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);

explain plan for
select * from testtab1 order by id ;
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);

--38秒


-----createStatement vs prepareStatement--------
package com.tristan;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

/**
 * 由于shared pool存放了执行计划(全表扫描)所以导致以后prepareStatement用不到索引了
 * oracle重启后清空shared pool 就很快了
 * 或是清理执行计划
 * Alter system flush shared pool;
 */
public class TestJDBC {
	public static void main(String[] args) throws Exception {
		Class.forName("oracle.jdbc.OracleDriver");
		Connection con = DriverManager.getConnection(
				"jdbc:oracle:thin:@192.168.81.128:1521:ORCL", "oracle",
				"oracle");

		long begin = System.currentTimeMillis(); // 测试起始时间

		test1(con);

		long end = System.currentTimeMillis(); // 测试结束时间
		System.out.println("操作所需时间:" + (end - begin) + " 毫秒"); // 打印使用时间

	}

	//18027 ms
	private static void test1(Connection con) throws Exception {
		PreparedStatement pStmt = con
				.prepareStatement("select * from Testtab3 where id = ?");
		pStmt.setInt(1, 32);
		ResultSet result = pStmt.executeQuery();

	}
	
	//57 ms
	private static void test2(Connection con) throws Exception {
		Statement st = con.createStatement();
		ResultSet result = st.executeQuery("select * from Testtab3 where id = 32");

	}
}






分享到:
评论

相关推荐

    Oracle Form guide (Outside Training).

    10. **调试和测试工具**:开发过程中,Oracle Forms提供了强大的调试器和测试工具,帮助开发者找出并修复问题。 这份“Oracle Form guide (Outside Training).ppt”很可能详细介绍了以上所有内容,并可能包含实战...

    Oracle BPM Training and add in introduction

    - **并发流程仿真**:能够对多个流程进行仿真测试。 - **服务集成与EAI**:实现不同系统间的无缝连接。 - **表单生成器**:简化数据输入流程。 - **企业级高伸缩性BPM服务器**:支持大规模部署。 #### Oracle BPM ...

    oracle面试测试题.docx

    - 插入测试数据: - department表:数学,计算机,化学,中文,经济学 - class表:软件,微电子,无机化学,高分子化学,统计,现代语言,国际贸易,国际金融 - student表:张三,钱四,王玲,李飞,王五等学生...

    oracle面试测试题.pdf

    插入测试数据: ```sql INSERT INTO department VALUES (1, '数学'); INSERT INTO department VALUES (2, '计算机'); -- 更多插入语句... INSERT INTO class VALUES (101, '软件工程', 2, DATE '1995-09-01'...

    oracle ESB 实验指导中文版练习脚本

    9. **部署与测试**:学习如何将ESB项目打包并部署到Oracle SOA Suite服务器上,以及如何进行功能测试和性能测试。 10. **版本控制与生命周期管理**:理解服务版本控制的重要性,学习如何在Oracle ESB中管理服务的...

    ORACLE Security

    本文档将详细介绍官方 Oracle Security Training lab 文件中涉及的关键安全功能,包括 DB Vault、Audit Vault、Label Security、Data Masking 和 TDE,并对这些功能进行深入探讨。 #### 二、DB Vault **DB Vault**...

    oracle Developer使用指南(6.7.)

    10. **Training and Documentation**:Oracle Developer通常会附带详尽的用户文档和教程,帮助初学者快速上手,并为高级用户提供深入的技术参考。 了解并掌握这些知识点,对于高效地使用Oracle Developer 6.7进行...

    Training-And-Placement-Management_training_

    本系统“Training-And-Placement-Management_training_”正是基于JavaFX技术,专注于培训机构的培训管理和就业安置工作,旨在提高培训机构的工作效率和服务质量。 1. **JavaFX基础** JavaFX是Oracle公司推出的用于...

    JDE DOC FOR BSSV TRAINING

    【标题】"JDE DOC FOR BSSV TRAINING" 涉及的主要知识点是Oracle JD Edwards(JDE)的企业服务(Business Services,简称BSSV)的使用与开发,特别是如何利用BSSV来消费外部Web服务。这些文档旨在提供培训材料,帮助...

    Practical Training.zip

    4. 数据库管理:可能包括SQL查询语言的学习材料,以及MySQL、Oracle、MongoDB等数据库的安装、配置、数据管理及备份恢复的实战教程。 5. 操作系统:比如Linux系统的使用,包括命令行操作、系统服务管理、文件权限...

    J2EE_Training_data_set.rar_J2EE_training data

    J2EE(Java 2 Platform, Enterprise Edition)是Oracle公司推出的用于构建企业级分布式应用的Java平台。它是一个开放标准,基于组件的架构,旨在提供跨多个操作系统和硬件平台的可移植性。J2EE平台包含了各种服务、...

    training-sep

    9. **测试和调试**:JUnit是Java中常用的单元测试框架,而调试技巧对于找出并修复代码中的问题至关重要。 10. **持续集成/持续部署(CI/CD)**:如Jenkins,是Java开发中常见的自动化构建和部署工具。 11. **设计...

    db-training:训练库

    综上所述,"db-training:训练库"项目涵盖了Java后端开发的多个方面,包括数据库操作、框架使用、API设计、安全性以及测试等,对于想要深入学习Java和数据库开发的人员来说,这是一个很好的实践项目。

    java training

    【标题】:“java training” 【描述】:提及的是支付宝口令红包在微信的封锁下成功逆袭,成为热门的红包玩法,特别是在年底聚会中被广泛应用。这涉及到的是互联网技术和移动支付领域的创新应用,虽然主要讲述的是...

    MCTS Self-Paced Training Kit (Exam 70-561) Microsoft .NET Framework 3.5 - ADO.NET Application Development PDF

    ADO.NET是微软提供的一个强大的数据访问框架,用于与各种数据源(如SQL Server、Oracle等)交互。在.NET Framework 3.5中,ADO.NET进一步强化了对LINQ(Language Integrated Query)的支持,使得开发者能够更自然地...

    hybris Developer Training Part I - Core Platform - Module 01 - Warm Up

    - 最新的Java 7版本(推荐使用Oracle JDK)。 - 推荐使用Eclipse作为集成开发环境(IDE)。 #### 软件需求 除了上述硬件要求外,还需要安装以下软件: - Java Development Kit (JDK):最新版Java 7。 - 集成开发...

    QTP Basic Training

    5. **创建检查点**:在测试过程中,创建检查点是至关重要的,它们用于验证特定对象或数据是否符合预期。QTP支持基于关键字和活动屏幕的检查点,测试结束后,检查点结果会显示是否通过。 6. **拆分测试操作**:为了...

    OCP 10g TK

    "TK"可能代表"Test Kit"或者"Training Kit",通常是指一系列的学习材料或模拟测试,帮助考生准备OCP 10g认证考试。 Oracle 10g数据库是Oracle的第10个主要版本,发布于2003年,它带来了许多新特性,提高了性能、...

    Training:用于学习Java,MySQL,HTML,CSS,JavaScript,jQuery,JSP,Google Charts,Kafka,Oracle VM VirtualBox,JavaFX GUI的代码集合

    **Oracle VM VirtualBox**是一款虚拟化软件,它允许在同一台机器上运行多个操作系统,为开发者提供了便捷的环境测试和隔离。 **JavaFX**是Java的一个GUI(图形用户界面)工具包,用于构建桌面应用程序。JavaFX支持...

    j2ee training

    Java 2 Enterprise Edition(J2EE)是一种由Sun Microsystems(现已被Oracle收购)开发的用于构建企业级分布式应用的开放标准平台。J2EE培训课程旨在帮助开发者掌握这个平台的关键概念和技术,以便能够开发出高效、...

Global site tag (gtag.js) - Google Analytics