首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Oracle 9i上找到高水位线(用于会话)

在Oracle 9i中,您可以使用以下方法来找到高水位线(用于会话):

  1. 使用V$SESSION视图:

您可以查询V$SESSION视图以获取有关当前会话的信息,包括每个会话的最大内存使用量。

代码语言:sql
复制
SELECT
  username,
  sid,
  MAX(pga_max_mem) AS max_memory_used
FROM
  v$session
GROUP BY
  username,
  sid;
  1. 使用DBA_HIST_SYSMETRY视图:

如果您需要历史数据,可以查询DBA_HIST_SYSMETRY视图,该视图提供了有关系统性能的历史数据。

代码语言:sql
复制
SELECT
  INST_ID,
  SNAP_ID,
  TIMESTAMP,
  VALUE
FROM
  DBA_HIST_SYSMETRY
WHERE
  MET_NAME = 'sessions'
  AND VALUE_TYPE = 'HIGH_WATERMARK';
  1. 使用DBA_HIST_ACTIVE_SESS_HISTORY视图:

您还可以查询DBA_HIST_ACTIVE_SESS_HISTORY视图以获取有关会话的历史数据。

代码语言:sql
复制
SELECT
  INST_ID,
  SESSION_ID,
  SESSION_TYPE,
  LOGON_TIME,
  LOGOFF_TIME,
  MAX_MEMORY_USED
FROM
  DBA_HIST_ACTIVE_SESS_HISTORY;

请注意,这些查询可能需要适当的权限才能执行。如果您遇到任何问题,请与您的Oracle DBA联系。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Oracle delete操作隐藏着你可能不知道的秘密

在讲解原因之前,先了解下oracle中高水位线的概念,有助于理解delete操作产生的这种现象。...所谓的高水位(HWM),通俗的讲就是一个标记,用来记录已经有多少数据块(Block)分配给表,可以拿水库的历史最高水位来类比,当使用delete操作后,数据虽然被删除了,但这个高水位的标记并没有降低,就好比水库的历史最高水位不会因为水被释放了而降低...因而,原则上在没有外部干预的条件下,这个高水位标记值只会增大,不会降低。 三 实战模拟重现现象 根据上面的现象描述和分析,接下来,我会用具体的实例模拟该现象,使大家可以更直观的了解。...四 解决方法 针对delete操作引起的空间不释放现象,或者,更正式一点的说法,如何降低高水位线,方法有很多种,如,shrink space;move tablespace;create table xxx...,也会释放申请的空间,即高水位线上下都有操作,这也是与move、truncate的不同,它们只能释放高水位线以下的空间。

77230
  • 高水位线和全表扫描

    高水位线好比水库中储水的水位线,用于描述数据库中段的扩展方式。高水位线对全表扫描方式有着至关重要的影响。...当使用delete 操作 表记录时,高水位线并不会下降,随之导致的是全表扫描的实际开销并没有任何减少。本文给出高水位线的描述,如何降低高水位线,以及高水 位线对全表扫描的影响。...一、何谓高水位线     如前所述,类似于水库中储水的水位线。只不过在数据库中用于描述段的扩展方式。     可以将数据段或索引段等想象为一个从左到右依次排开的一系列块。...即使用ASSM时除了高水位线之外,还包括一个低高水位线。低高水位线一定是位于高水位线之下。       当段使用MSSM管理方式时只有一种情况即只存在一个高水位线。       ...使用低高水位线可以减少当全面扫描表段时,低高水位线与高水位线之间不安全块的检查数量。即低高水位线之下的块不再检查。

    51420

    Oracle-HWM(High Water Mark) 高水位解读

    ---- Oracle表段中的高水位线HWM 在数据库表刚建立的时候,由于没有任何数据,所以这个时候水位线是空的,也就是说HWM为最低值。...Select语句会对表中的数据进行一次扫描,但是究竟扫描多少数据存储块呢,这个并不是说数据库中有多少数据,Oracle就扫描这么大的数据块,而是Oracle会扫描高水位线以下的数据块。...试想一下,新建的一个空表,Select一下,由于高水位线HWM在最低的0位置上,所以没有数据块需要被扫描,扫描时间会极短。...由于插入了一千万条数据,所以这个时候的高水位线就在一千万条数据这里。后来删除这一千万条数据的时候,由于delete语句不影响高水位线,所以高水位线依然在一千万条数据这里。...---- 降低ORACLE表的高水位线 在ORACLE中,执行对表的删除操作不会降低该表的高水位线。而全表扫描将始终读取一个段(extent)中所有低于高水位线标记的块。

    2.8K51

    Oracle数据库全球化

    一、自定义数据库和各个会话的语言相关行为 1.1 全球化功能 **字符集** Oracle数据库软件有自己的字符集,不依赖于主机操作系统的字符集。...1.2 使用全球化支持功能 可以在任意级别上指定全球化(优先级由低->高):数据库、实例、客户端环境、会话、语句。...8.0版本后,Oracle引入了National Character Set,即数据库的第二个字符集,它用于存储nvarchar2, nclob, nchar数据类型的数据。...9i版本后,Oracle的National Character Set只能为Unicode字符集,有两种选择AL16UTF16和UTF8.选择哪个要考虑nvarchar2数据类型中实际要存储的数据类型,...1.2.2 改变数据库字符集 在9i版本之前,无法改变数据库字符集,从9i版本开始,虽然可以改字符集,但无法保证这种方法有效。

    38920

    Oracle解决高水位线(high water mark 简称:HWM)​问题

    就如刚挖的水库一样里面没有一滴水,那么它的最高水位为0.同理在刚建的新表中由于没有一条数据,所以的高水位是0,随着不断的往里面添加数据,进行增删操作,那么它的高水位就会上涨。...当然也不是说你把表的数据删掉一半,它的高水位就会下降,因为高水位代表历史最高水位。  在Oracle中执行delete删除操作不会降低高水位。...现在回想以下,如果是一个新建的表,里面没有数据,那么你执行select 扫描操作,那么高水位线基本就在0上,所以就没有数据块被扫描。扫描的时间就会用的很少。...但是现在你往表里插入1000万条数据,然后再执行delete操作,但是由于delete操作不影响高水位线,所以高水位线还是原来的高水位线。...就行水库泄洪一样,你会打开水闸把超出最高水位预警线的水消退掉。

    1.4K30

    见招拆招:破解Oracle数据库密码

    截获网络信息往往比登入数据库找到密码密文更易操作、更难防范、隐秘性更高。 本文会说明oracle最常见的3个版本的具体算法,但是不会揭露算法内部细节。...首先假设取得了oracle_hash,这里不同于9i。9i虽然算了2个不同的散列值。但由于2个散列值都是通过固定数据和oracle_hash算出来的,所以难免被破解,而且效率不高。...10g在对于sesskey的处理上取得了长足的改善,但是对oracle_hash的产生上依旧延续了9i的方式。采用用户名和密码进行拼接组成最关键的字符串。对该字符串进行DES处理。...11g最大的变化在生成Oracle_hash上采取了和10g不同的策略。Oracle 11g为了提高Oracle_hash的安全性,多引入了AUTH_VFR_DATA这个随机值。取消了明文用户名。...每个会话的AUTH_VFR_DATA都不同。从根本上避免9i、10g同字符串(用户名+密码组成的字符串)带来的无论哪台机器oracle_hash一致的巨大安全隐患。

    3.5K70

    读书笔记-《基于Oracle的SQL优化》-第一章-3

    优化器: 1、优化器的模式: 用于决定在Oracle中解析目标SQL时所用优化器的类型,以及决定当使用CBO时计算成本值的侧重点。...CHOOSE:Oracle 9i的默认值,表示RBO还是CBO取决于SQL涉及的表对象是否有统计信息。...FIRST_ROWS:Oracle 9i中就已经过时的参数,当一些特殊情况下的时候,会使用RBO中的一些内置的规则来选取执行计划不再考虑成本。...3、访问数据的方法: 3.1 访问表的方法 全表扫描: 指Oracle访问目标表里的数据时,会从该表所占用的第一个区(Extent)的第一个块(Block)开始扫描,一直扫描到该表的高水位线(HWM),...ROWID表示Oracle中的数据行记录所在的物理存储地址,也就是说ROWID实际上和Oracle中数据块里的行记录一一对应的。

    78620

    Oracle的参数文件:pfile和spfile

    可以分为两种类型: pfile: 初始化参数文件(Initialization Parameters Files),Oracle 9i之前,ORACLE一直采用pfile方式存储初始化参数,pfile...spfile:服务器参数文件(Server Parameter Files),从Oracle 9i开始,Oracle引入了Spfile文件,spfile 默认的名称为“spfile+例程名.ora”文件路径...从操作系统上可以看到这两者的区别,初始化参数文件为ASCII文本文件,Spfile为数据文件。...large_pool_size=16777216  指定大型池的大小为1MB, 用于共享服务器的会话内存、并行执行的消息缓冲区以及RMAN备份和恢复的磁盘 I/O 缓冲区。...################### processes=150 指定可同时连接到一个Oracle Server上的操作系统用户进程的最大数量为150 ########################

    1.1K20

    某个SQL导致数据库CPU飙高,如何快速定位?

    概述 如果是Oracle数据库我们可以很容易通过sql来定位到当前数据库中哪些消耗CPU高的语句,而mysql数据库可以怎么定位呢?这里用一个简单例子说明下......TID列将processlist ID映射到OS线程ID的支持,而MySQL在5.7版本后在PERFORMANCE_SCHEMA.THREADS表加了一个THREAD_OS_ID新列来实现,以下方法适用于在其他内核正常运行时...定位线程 pidstat -t -p 1 5 通过该命令我们可以定位到**「802、4445等线程消耗了大量的CPU」**,这里尽量确保在pidstat的多个样本中验证消耗是恒定的...`PROCESSLIST` where id=threads.processlist_id 根据操作系统id可以到processlist表找到对应的会话,如下: 查看问题sql执行计划 这里对应看一下执行计划基本就可以判断当前数据库

    52920

    经典故障分析 - ASSM引发的索引争用与 enq HW -contention 等待事件

    作者介绍: 孙加鹏 云和恩墨技术顾问 六年Oracle技术顾问经验,所服务的行业包括电信运营商、金融业、制造业等。 擅长Oracle的故障诊断、高可用架构、升级迁移等。目前主要服务于上海金融类客户。...简而言之,HW锁是在分配高水位线以上的空闲空间时,多个进程同时为了分配高水位线上空闲空间而修改HWM,修改HWM需要持有HW锁,该锁又属于排他锁(mode=6)。...如果大量数据被并发插入某个对象时,那多个进程可能会试图在高水位线以上同时申请可用空间,大并发的申请HW锁,从而导致HW enqueue争用。...下一步看看HW竞争是在表段还是在索引段上? ? ? 大量的物理读/物理写请求也都发生在表TAB_ENMO的索引上。这里可以猜测HW竞争可能不在表上,而在这几个索引上面,IO读写请求非常高。...索引目前已经有2323个extents,现在的高水位线在extent_id 2322 block_id 8192位置。”

    1.2K40

    某个SQL导致数据库CPU飙高,如何快速定位?

    概述 如果是Oracle数据库我们可以很容易通过sql来定位到当前数据库中哪些消耗CPU高的语句,而mysql数据库可以怎么定位呢?这里用一个简单例子说明下......TID列将processlist ID映射到OS线程ID的支持,而MySQL在5.7版本后在PERFORMANCE_SCHEMA.THREADS表加了一个THREAD_OS_ID新列来实现,以下方法适用于在其他内核正常运行时...定位线程 pidstat -t -p 1 5 通过该命令我们可以定位到**「802、4445等线程消耗了大量的CPU」**,这里尽量确保在pidstat的多个样本中验证消耗是恒定的...`PROCESSLIST` where id=threads.processlist_id 根据操作系统id可以到processlist表找到对应的会话,如下: 查看问题sql执行计划 这里对应看一下执行计划基本就可以判断当前数据库

    65120

    某个SQL导致数据库CPU飙高,如何快速定位?

    概述 如果是Oracle数据库我们可以很容易通过sql来定位到当前数据库中哪些消耗CPU高的语句,而mysql数据库可以怎么定位呢?这里用一个简单例子说明下......TID列将processlist ID映射到OS线程ID的支持,而MySQL在5.7版本后在PERFORMANCE_SCHEMA.THREADS表加了一个THREAD_OS_ID新列来实现,以下方法适用于在其他内核正常运行时...定位线程 pidstat -t -p 1 5 通过该命令我们可以定位到**「802、4445等线程消耗了大量的CPU」**,这里尽量确保在pidstat的多个样本中验证消耗是恒定的...`PROCESSLIST` where id=threads.processlist_id 根据操作系统id可以到processlist表找到对应的会话,如下: 查看问题sql执行计划 这里对应看一下执行计划基本就可以判断当前数据库

    65820

    如何快速定位当前数据库消耗CPU最高的sql语句

    概述 如果是Oracle数据库我们可以很容易通过sql来定位到当前数据库中哪些消耗CPU高的语句,而mysql数据库可以怎么定位呢?这里用一个简单例子说明下......simple OS tools to find the culprit has been a widely used technique for a long time by PostgreSQL and Oracle...TID列将processlist ID映射到OS线程ID的支持,而MySQL在5.7版本后在 PERFORMANCE_SCHEMA.THREADS表加了一个THREAD_OS_ID新列来实现,以下方法适用于在其他内核正常运行时...1、定位线程 pidstat -t -p 1 5 通过该命令我们可以定位到802、4445等线程消耗了大量的CPU,这里尽量确保在pidstat的多个样本中验证消耗是恒定的...`PROCESSLIST` where id=threads.processlist_id 根据操作系统id可以到processlist表找到对应的会话,如下: 3、查看问题sql执行计划 这里对应看一下执行计划基本就可以判断当前数据库

    61920

    小白学习MySQL - MySQL会不会受到“高水位”的影响?

    如果按照Oracle的思维,堆表是存在高水位这个问题的,High-warter mark, HWM,存储空间就像水库一样,数据就像水库中的水,水的位置是存在一条线的,这就是水位线,在数据库表刚建立的时候...,由于没有任何数据,所以这个时候水位线是空的,就是说HWM为最低值,当插入了数据以后,高水位线就会上涨。...这里有个特性,如果采用delete语句删除数据,数据虽然被删除了,但是高水位线却没有降低,还是刚才删除数据以前那么高的水位,就是说这条高水位线在日常的增删操作中只会上涨,不会下降, P.S....高水位线影响最显著的就是全表扫描的效率,因为当进行全表扫描时,会扫描高水位线以下的所有数据块,用上述的例子说,如果1220万数据,删除了1200万,只剩下20万,当进行全表扫描的时候,不会只扫描这20万数据的数据块...如果是OLTP的系统,要尽量避免全表扫描,通过索引,绕开高水位线带来的问题。 回到今天的主题,Oracle中的高水位,在MySQL中究竟存在不存在?

    2.1K20

    如何快速定位当前数据库消耗 CPU 最高的 SQL 语句?

    wid=1623686217615 概述 如果是Oracle数据库我们可以很容易通过sql来定位到当前数据库中哪些消耗CPU高的语句,而mysql数据库可以怎么定位呢?这里用一个简单例子说明下......simple OS tools to find the culprit has been a widely used technique for a long time by PostgreSQL and Oracle...TID列将processlist ID映射到OS线程ID的支持,而MySQL在5.7版本后在 PERFORMANCE_SCHEMA.THREADS表加了一个THREAD_OS_ID新列来实现,以下方法适用于在其他内核正常运行时...1、定位线程 pidstat -t -p 1 5 通过该命令我们可以定位到802、4445等线程消耗了大量的CPU,这里尽量确保在pidstat的多个样本中验证消耗是恒定的...`PROCESSLIST` where id=threads.processlist_id 根据操作系统id可以到processlist表找到对应的会话,如下: 3、查看问题sql执行计划 这里对应看一下执行计划基本就可以判断当前数据库

    83730
    领券