Python查询Oracle中指定表并收集其统计信息

Oracle DBA必学Python:2026年自动化运维核心技能指南 数据库自动化运维是现代IT基础设施管理的核心技术概念,其原理是通过编程脚本替代传统手工操作,实现数据库监控、维护和优化的自动化执行。这种技术价值在于显著提升运维效率,降低人为错误风险,并支持大规模数据库集群的智能化管理。在应用场景方面,自动化运维广泛应用于性能监控、备份恢复、容量规划等日常数据库管理任务。Python作为最易上手的编程语言,特别适合Oracle DBA快速掌握自动化技能,通过cx_Oracle库实现与Oracle数据库的无缝集成。本文聚焦Python在Oracle DBA工作中的实际应用,详 阅读详情

1、环境准备

首先要确保当前环境已经安装了Python及cx_Oracle模块,Linux下安装cx_Oracle模块链接
https://blog.youkuaiyun.com/u011285708/article/details/104096011

创建不同用户下的3张表

SYS@TNS_PDB01>conn scott/scott@TNS_PDB01 ;
Connected.

SCOTT@TNS_PDB01>create table t1 as select * from dept;

Table created.

SCOTT@TNS_PDB01>conn sys/oracle@TNS_PDB01 as sysdba
Connected.
SYS@TNS_PDB01>create table t2 as select * from scott.emp;

Table created.

SCOTT@TNS_PDB01>create table hr.t3 as select * from dept;

Table created.

执行收集统计信息脚本前

SYS@TNS_PDB01>select owner,table_name,last_analyzed from dba_tab_statistics where table_name in ('T1','T2','T3') ;

OWNER	   TABLE_NAME	   LAST_ANALYZED
---------- --------------- -------------------
SYS	   T2
SCOTT	   T1		   2020-01-28 10:08:59
HR	   T3		   2020-01-28 13:16:01

2、编写并执行Python脚本

[root@kkk my_python]# cat exec.py 
#!/usr/bin/env python

import cx_Oracle

conn = cx_Oracle.connect('sys/oracle@TNS_PDB01',mode = cx_Oracle.SYSDBA)
#print(conn.version)
cursor = conn.cursor()
sql1 = "select owner,table_name from dba_tab_statistics where table_name in ('T1','T2','T3')"

cursor.execute(sql1)
rows = cursor.fetchall()

for row in rows:
	#print(row)
	ownname = row[0]
	tabname = row[1]
	#print(tabname + "'s owner is " + ownname + ".")
	cursor.execute("""
		begin
			dbms_stats.gather_table_stats(
				ownname => '""" + ownname + """',
				tabname => '"""+ tabname  + """',
				estimate_percent => 100,
				method_opt => 'FOR ALL COLUMNS SIZE 1',
				cascade => true,
				no_invalidate => false);
		end;
	""")
cursor.close()
conn.close()

执行脚本

python3 exec.py

3、查看执行收集统计信息脚本后统计信息最后收集时间

SYS@TNS_PDB01>select owner,table_name,last_analyzed from dba_tab_statistics where table_name in ('T1','T2','T3') ;

OWNER	   TABLE_NAME	   LAST_ANALYZED
---------- --------------- -------------------
SYS	   T2		   2020-01-28 13:28:01
SCOTT	   T1		   2020-01-28 13:28:02
HR	   T3		   2020-01-28 13:28:02

最近在捣鼓Python,感觉Python能做的事有很多,得慢慢研究…,文档中有啥不对的请指正,谢谢!

Oracle分页查询深度解析:从ROWNUM到ROW_NUMBER()的高性能实践指南 分页查询是数据库应用中的核心基础技术,用于处理海量数据的高效检索与展示。其原理在于通过限制返回结果集的数量,避免一次性加载全部数据导致的服务器内存压力与网络传输瓶颈。这项技术的核心价值在于保障系统性能与用户体验的平衡,广泛应用于电商列表、社交动态流、后台管理系统等数据展示场景。在Oracle数据库中,实现高效分页需要深入理解其特有的执行机制,例如巧妙运用ROWNUM伪列或更现代的ROW_NUMBER()窗口函数。针对性能优化,关键在于为排序字段建立合适的索引,并解读执行计划以避免全表扫描。本文聚焦于Orac 阅读详情

相关推荐

Oracle DBA必学Python:自动化运维实战与技能提升指南

Python作为一门简洁高效的编程语言,在数据库管理领域展现出强大的技术价值。其核心原理在于通过丰富的库生态和简洁语法,实现对数据库操作的自动化封装。在Oracle数据库管理中,Python通过cx_Oracle等连接库,能够高效执行SQL查询、性能监控和自动化运维任务。这种技术组合的价值在于显著提升DBA工作效率,将传统手动操作转化为自动化流程。应用场景涵盖数据库巡检、性能监控、备份验证等日常运维工作。随着企业数据量激增,Python与Oracle技能结合成为DBA职业发展的关键方向,特别是在自动化巡检脚

weixin_30536513的博客 346

python监控数据库_Python Oracle数据库监控

有的时候无法使用Oracle自带的OEM监控,那么就需要确定一个监控方案。此方案,使用Python+Prometheus+Grafana+Oracle1.监控配置表-- Create tablecreate table DB_MONITOR_TAB(ID NUMBER,MONITOR_CLASS VARCHAR2(50),MONITOR_NAME...

weixin_39773215的博客 382

物化视图实战指南:高频聚合查询的性能优化核心方案

物化视图是一种将复杂查询结果预先计算并持久化存储的技术,其本质是通过空间换时间,在数据库层实现可索引、事务一致的结果缓存。相比应用层缓存或临时表,它天然支持GROUP BY、HAVING、多表JOIN等复杂聚合逻辑,并深度集成于查询优化器。技术价值在于规模化降低重复计算开销,显著缓解CPU与IO压力;典型适用于BI看板、固定口径统计报表、微服务共用指标等高频复用场景。本文聚焦PostgreSQL、Oracle、SQL Server及Redshift四大平台的创建要点、刷新策略选型与生产级避坑经验,尤其解析‘

weixin_30653023的博客 393

python读取与写入oracle数据库表信息

一、一般读取数据库代码: import cx_Oracle # 导入数据库 import pandas as pd #导入操作数据集工具 from sqlalchemy import create_engine #导入 sqlalchemy 库,然后建立数据库连接 import time #导入时间模块 import numpy as np #导入numpy数值计算扩展 os.environ['...

SissiZhang的博客 1万+

【C++】auto关键字(C++11,超详细解析,小白必看系列)

本文详细解析了C++中的“auto”关键字,介绍了其定义、基本用法、限制和高级用法,特别是与范围for循环和Lambda表达式结合的应用。

m0_73494049的博客 6万+

Codesys电子凸轮Cam表实战:从可视化配置到程序化构建

本文详细介绍了Codesys电子凸轮Cam表的实战应用,从可视化配置到程序化构建的全过程。通过包装机和印刷机案例,解析Cam表的基础设置、调试技巧及动态构建方法,帮助工程师快速掌握电子凸轮技术,提升运动控制精度和效率。

weixin_29309785的博客 298

python实现链接oracle数据库定时查询数据生成excel

import csv import cx_Oracle import time from datetime import datetime import pandas as pd import schedule import win32com.client as win32 def sjcx(): # 生成excel文件名 curr_time = time.strftime('%Y%m%d%H', time.localtime(time.time())) csv_file...

1020

LLC谐振变换器设计实战:从工作原理到参数设计与调试

开关电源设计是电力电子领域的核心技术,其核心目标在于提升效率与功率密度。为实现这一目标,软开关技术应运而生,它通过精心控制开关器件的电压与电流波形,使其在开通或关断瞬间实现零电压或零电流切换,从而从根本上降低开关损耗。LLC谐振变换器正是这一技术的杰出代表,它通过引入谐振网络,巧妙地实现了主开关管的零电压开关和次级整流管的零电流开关。这种拓扑结构在服务器电源、通信设备及高端显示驱动等要求高效率、高功率密度的应用场景中价值显著。本文将以半桥LLC为例,深入剖析其工作模态与增益特性,并系统阐述其参数设计、仿真验

weixin_34129696的博客 559

python 查询oracle数据库返回具体字段名

#导入cx_Oracle import cx_Oracle #建立conn连接 conn = cx_Oracle.connect('BI/123@123@10.110.11.11:1521/orcl') #建立光标 curs = conn.cursor() #获取返回的行数 numline=int(input("输入希望返回的行数:")) #执行对应SQL sql = f"select * from SY2_CJBZGX_CPT where rownum<='{numline}'"#当带有参数需在s.

qq_29061315的博客 8688

手把手教你用vLLM在昇腾910B上部署Qwen3-Embedding-8B模型(保姆级避坑指南)

本文详细介绍了如何在昇腾910B芯片上使用vLLM推理引擎部署Qwen3-Embedding-8B模型的全流程,包括环境准备、vLLM-ascend定制化安装、模型获取与校验、环境变量配置、服务启动参数优化、性能压测及生产级部署建议。特别针对昇腾生态的开发者,提供了保姆级的避坑指南和实用技巧,帮助实现高效稳定的模型部署。

weixin_28726671的博客 463

基于STM32的多路火灾报警系统设计

本文设计了一款基于STM32的多路火灾报警系统,利用多个传感器组合(如烟雾传感器、温度传感器等)进行数据采集与处理,精确判断火灾情况,并及时发出报警信号,保障生命与财产安全。本系统设计了一款基于STM32的多路火灾报警系统,通过结合烟雾传感器和温度传感器,提升了火灾检测的准确性和可靠性。未来,系统可以进一步集成更多传感器,如气体传感器、湿度传感器等,进一步提升火灾报警系统的智能化水平。本系统采用STM32F103单片机作为核心处理单元,结合烟雾传感器、温度传感器和报警模块,实现多通道火灾报警功能。

stm32d1219的博客 2028

Oracle-统计信息收集&&分析表和索引

ORACLE-统计信息收集&&分析表和索引

UntifA的博客 5755

2021秋-北邮计算机导论期末考试(BUPT)

2021秋-北邮计算机导论期末考试(BUPT) 难度较低适合新手练习

weixin_73985779的博客 1498

Oracle - v$lock查询慢原因分析

数据库内部对象X$统计信息过旧,导致v$lock查询慢 前段时间用python写了个zabbix监控脚本,里面有一个检查锁的sql语句,sql语句是这样子的select count(*) retvalue from v$lock where type in('TM', 'TX') and ctime > 600;但是zabbix界面显示这条语句超时,zabbix超时时间默认是3s,我将其...

weixin_34415923的博客 691

YOLOv13改进策略【Neck篇】| GSConv 轻量卷积,Slim-Neck 减参数还不掉点

Neck 篇的第二篇继续"替换式"改进,这次的对象是 Neck 里的下采样卷积。GSConv 出自《Slim-neck by GSConv: a better design of lightweight detector》(2022),它的出发点:DWSConv(深度可分离)轻但"信息混不进通道",标准卷积重但表达好——GSConv 用GConv(分组卷积)混通道 + DWConv 补空间 + Channel Shuffle 打散,两全其美。

qq_53329130的博客 30

化工管道设计软件:CAESAR II二次开发_(6).API接口与函数库

自定义函数库是开发者根据特定需求编写的函数集合。这些函数可以扩展CAESAR II的功能,实现更复杂的管道设计任务。自定义函数库通常需要开发者具备一定的编程基础,能够理解和编写与CAESAR II接口兼容的代码。定义函数:在Python或其他编程语言中定义所需的函数。注册函数:将自定义函数注册到CAESAR II的函数库中。调用函数:在CAESAR II中调用自定义函数,实现特定功能。假设我们需要创建一个自定义函数库,用于批量修改管道节点的坐标。定义函数:在Python中定义一个函数,用于批量修改节点坐标。

kkchenjj的博客 1728

11g 自动收集统计信息

13Automatic Optimizer Statistics Collection打开:BEGIN DBMS_AUTO_TASK_ADMIN.ENABLE( client_name=>'autooptimizerstatscollection' ,operation=>NULL ,window_name=&g...

weixin_34060741的博客 110

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

oracle javacomm20,Oracle_tools.py

\033[32m#####################################操作菜单####################################\033[0m#\033[33m1. 查看数据库用户profile配置信息\033[0m ##\033[33m2. 查看数据库asm磁盘...

weixin_34653651的博客 92

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Oracle数据库连接与查询优化实战指南

关系型数据库连接是企业应用开发的基础技术,通过JDBC等标准接口实现程序与数据库的交互。Oracle作为主流商业数据库,其连接管理采用thin驱动模式,通过连接字符串指定主机、端口和服务名建立会话。在Java生态中,JDBC规范定义了统一的API接口,配合连接池技术(如HikariCP)可显著提升并发性能。实际开发中需要重点关注SQL优化(索引使用、执行计划分析)和异常处理(ORA错误代码解析),特别是在处理分页查询、批量操作等场景时,合理的fetchSize设置和绑定变量使用能有效降低数据库负载。本文以员

weixin_30527423的博客 393

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

执行计划基础 动态采样

1. 统计信息默认情况下是每天晚上10点半后收集,如果新建对象还没来得级收集统计信息,就采用动态采样的方式。 2. 具体在set autotrace 跟踪的执行计划中,可以看到类似:- dynamic sampling used for this statement (level=2) 3. 除非你用类似/*+dynamic_sampling(t 0) */的HINT关闭这个动态采样。 4...

weixin_34384557的博客 177

zabbix如何监控oracle,使用zabbix监控oracle数据库的方法详解

一、概述zabbix是一款非常强大,同时也是应用最为广泛的开源监控软件,本文将给大家介绍如何利用zabbix+python监控oracle数据库。二、环境介绍以下是我安装的环境,实际部署时并不需要跟我的环境一样。1. 监控机 Redhat Linux 6.5 + Zabbix server 3.4.10 + Python 2.6.6 (操作系统自带) + Oracle Client 11.2 (x...

weixin_29190169的博客 2451

Oracle数据库数据增长监控实战:从查询到自动化告警

在数据库管理与运维中,数据增长监控是保障系统稳定性和性能的关键环节。其核心原理在于通过定期采集和分析表的记录数或物理空间变化,将模糊的数据膨胀感知转化为精确的可量化指标。这项技术的价值在于,它能提前预警容量风险、辅助性能调优与成本控制,是DBA和开发人员进行容量规划与健康度检查的基石。典型的应用场景包括核心业务表监控、磁盘空间预警以及识别异常数据增长(如程序逻辑错误产生的“幽灵数据”)。本文聚焦Oracle数据库,深入探讨如何通过SQL查询、执行计划优化并结合自动化脚本,构建一套从基础计数到趋势洞察的完整监

weixin_30412167的博客 330

Oracle Database 26ai Free 容器化部署:Docker 5分钟拉起 AI 向量数据库

本文详细介绍了如何通过Docker容器在5分钟内快速部署Oracle Database 26ai Free版本,构建AI向量数据库环境。从环境准备、容器部署到Python连接与向量操作实战,提供了完整的步骤和代码示例,帮助开发者高效利用Oracle的AI向量搜索能力。

weixin_34248705的博客 568

使用zabbix监控oracle数据库

一、概述 zabbix是一款非常强大,同时也是应用最为广泛的开源监控软件,本文将给大家介绍如何利用zabbix监控oracle数据库。 二、环境介绍 以下是我安装的环境,实际部署时并不需要跟我的环境一样。 1. 监控机 Readhat 6.5 + Zabbix server 3.4.10 + Python 2.6.6 (操作系统自带) + Oracle Client 11.2 (x8...

weixin_34240657的博客 1547

zabbix监控oracle端口号,使用zabbix监控oracle数据库

一、概述zabbix是一款非常强大,同时也是应用最为广泛的开源监控软件,本文将给大家介绍如何利用zabbix+python监控oracle数据库。二、环境介绍以下是我安装的环境,实际部署时并不需要跟我的环境一样。1. 监控机 Redhat Linux 6.5 + Zabbix server 3.4.10 + Python 2.6.6 (操作系统自带) + Oracle Client 11.2 (x...

weixin_39870155的博客 389

技术开发频道一周精选2007-7-28

标题:OOW即将开幕 ITPUB社区Oracle ACE将发表精彩演讲作者:IT168 记者链接:http://tech.it168.com/db/2007-07-28/200707281433312.shtml摘要:7月30日,Oracle Open World大会将在上海中国上海国际会议中心盛大开幕,届时ITPUB社区Oracle ACE将发表精彩演讲。距离上届2004年举办的Open W

IT168_ITPUB的专栏 728
上一篇: Linux下Python3.6.5安装的cx_Oracle模块
下一篇: Python必学的OS模块详解[转]
Lissen_Gan
博客等级 码龄13年 11粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值