Sql180 Developer
适用于 Oracle 开发人员和 DBA 的图形工具
引言
本文将向您介绍一个名为“Sql180 Developer”的图形工具,它旨在供Oracle开发人员和Oracle DBA使用。如果您是Oracle开发人员,您可以使用此工具轻松编写和编译PL/SQL代码,或者只是在Oracle环境中工作和开发。如果您是DBA或Oracle安全专家,您可以管理数据库,监控其性能,并检查Oracle数据库的安全问题。
背景
该项目的开发是受我们的大学学习以及我们在工作场所作为DBA的经验所启发。我们广泛搜索了一种简单易用的开发工具,特别是用于管理和监控我们设施中的数据库。我们发现了一些工具,但大多数都很复杂且不相关,因此我们决定开发自己的工具。
简要描述
Sql180 Developer 使您能够执行以下任务
- 编辑
- 编译
- 修正
- 优化
- 查询
该软件还提供了其他几种工具,可以在日常PL/SQL开发或DBA的日常活动中提供帮助。
首先,该软件有一个“SQL窗口”,它提供了执行任何Oracle命令(DML
、DDL
、SELECT
)的能力。从SELECT
语句检索的数据通过DataGridView
对象显示。您还可以显示SELECT
语句的执行计划,以优化您的代码。我们还实现了一个名为“命令窗口”的命令行工具,它模仿SQL*PLUS与“SQL>”提示符的工作方式。无论是“SQL窗口”还是“命令窗口”都可以保存已执行命令的历史记录,并管理Oracle事务。Oracle数据的所有获取以及Oracle连接和事务的处理都是通过ODP.NET Framework实现的,该框架为我们提供了OracleCommand
、OracleConnection
、OracleDataReader
等类。例如,这里是“SQL窗口”:

我们还实现了一个PL/SQL编辑器,它可以解析您输入的文本并对 Oracle 关键字和注释进行着色。通过该编辑器,您当然可以编译 PL/SQL 代码并将其存储在数据库中,或者检查编译错误,这些错误会在文本本身上用黄色标记。如果文本是 SELECT
语句,您还可以排版 SELECT
命令。所有这些功能都是通过扩展 RichTextBox
类实现的。例如,这是一个显示 Oracle 触发器代码的编辑器:

对象浏览器 - 这是一个非常有用的工具,位于主屏幕的左侧,它允许您浏览数据库中存储的所有 Oracle 对象。它有以下过滤器:“我的对象”显示当前登录用户的对象,“所有对象”显示当前登录用户可见的所有对象,“无效对象”和“所有非系统对象”。通过浏览器,您还可以操作任何您想要的对象。您可以查看、编辑、编译、重命名等(通过右键单击相关对象)。
对象创建向导 - 我们的软件还提供了用于创建、编辑和查看常见 Oracle 对象(表、视图、同义词、作业、用户、角色、数据库链接等)的向导。您可以通过按新建菜单或右键单击对象浏览器来创建新对象。所有对象向导都有一个名为“DDL”的选项卡,它可以显示创建/更改对象的确切实际 Oracle 命令,这些命令将在您按下“确定”按钮时执行。例如,这是一个用于创建新表的向导的屏幕截图。它具有以下选项卡 - 常规、存储、约束和索引(您也可以在左侧看到对象浏览器)

另一个重要的优势是“工具”菜单,它为 DBA 的常见任务提供了更多便利。它有“会话”屏幕,可以帮助 DBA 查看其数据库上的活动,并管理已登录的会话。还有“对象查找器”,可以帮助您快速轻松地查找任何对象。还有“对象编译器”,可以查找当前架构的所有无效对象并一键为您编译它们。您还可以计算架构对象甚至所有数据库上的统计信息(当然,如果您有正确的权限...)。
在我看来,我们软件的亮点是高级的DBA和安全选项,它们真正提高了DBA在实际工作中的效率!这些选项通过主屏幕上的DBA和安全菜单提供。只有当您以SYSDBA/SYSOPER权限登录数据库时,这两个选项才启用。
在 DBA 菜单中,您可以找到“通用”屏幕。此屏幕显示您的数据库的全局系统“健康”参数和一般详细信息。在此屏幕上,您可以通过显示的不同比率检查数据库上执行的排序、I/O、解析或 CPU 活动量。一键即可查明数据库性能的问题!
您还可以通过显示当前SQL区域来检查Oracle实例的内存——在那里您可以找到数据库上最高的加载活动,以及它来自何处。DBA菜单还为您提供了调查表和索引的能力:它可以为您检查是否存在导致性能不佳的不必要索引,没有索引的外键列,根本没有索引的表等等。它还建议您构建可以提高系统性能的索引。DBA菜单还可以为您提供报告——例如“可用空间”报告(此报告检查每个表空间剩余多少可用空间)。
这是一个性能屏幕的截图,它用红色、黄色或绿色显示了您的数据库状态。

最后是安全菜单,它帮助您调查系统中发生的**安全漏洞和问题**。例如,它可以向您显示具有弱密码(容易被破解)的用户,或具有默认配置文件的用户(这也很糟糕)。它还可以检查数据库中存储的强大权限和危险包,以及谁拥有它们,或拥有对它们的权限。它还会检查系统的审计状态。以下屏幕截图是检查危险或公共包的示例。

假设
- 我们的项目已在 Oracle 10g 环境中进行了测试。为了使用此代码,您的计算机必须安装有该版本的数据库并连接到该数据库,同时安装有 Oracle 客户端。
- 该代码是使用 .NET Framework 2.0 编写的,并在 Windows XP 和 Windows Vista 上进行了测试。
已知问题
- 存在一个 bug - 当您从一个表查询,然后修改表元数据(添加/删除列),然后调用相同的区分大小写的查询时,查询将忽略元数据更改(它将从缓存中提供以前的元数据)。
- 命令窗口完美执行 Oracle
DDL
/DML
命令,但对于SELECT
语句,它不会显示检索到的数据。您可以使用 SQL 窗口来完成此操作。
历史
- 2008年10月25日:首次发布