添加NOT NULL带有DEFAULT值的列时- PostgreSQL 是否优化此操作?
如果表有 n 行,未优化的 alter-table-add-column 将产生 n 次写入默认值 - 显然,这可能非常痛苦。通过优化,数据库将立即创建新列,仅存储默认值的一个副本,当在合适的索引数据结构中找不到该列的非默认值时,该副本将返回。
例如Oracle 11g 就有这样的优化。
我想知道正确启动/关闭 Oracle DB 守护程序(Oracle 11.2,安装在测试机器上)的最快方法是什么。
对于使用 OCI/Pro*C API 的 C/C++ 程序,我需要它。
我想要这个是因为我已经习惯了 PostgreSQL 的启动速度,而且因为守护进程在一个虚拟机中运行,该虚拟机仅为测试用例启动(按需)。
目前我像这样编写脚本 - 启动:
sqlplus /nolog <<EOF
connect / as sysdba
startup
quit
EOF
lsnrctl start
emctl start dbconsole
Run Code Online (Sandbox Code Playgroud)
并关机:
emctl stop dbconsole
lsnrctl stop
sqlplus /nolog <<EOF
connect / as sysdba
shutdown
quit
EOF
Run Code Online (Sandbox Code Playgroud)
这有效 - 程序按预期工作 - 但此过程非常缓慢。
Oracle DB 在 CentOS 6.3 上运行,它是免费(如啤酒一样)可用的“标准版”。
我使用以下zip 文件安装了 Oracle 11g2“标准”版:
linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip
Run Code Online (Sandbox Code Playgroud)
我使用了Oracle的安装指南,我发现它很乏味,例如,您需要安装/配置 X-Server,因为默认安装程序是一个 GUI,您必须“照看”一段时间。
有没有办法自动安装默认的 Oracle?
我的意思是像我可以指定的脚本:告诉我缺少什么 yum/apt-packages,这是我的 oracle-zip-install-files,将它安装在 $MY_BASEDIR 下,对于其他一切,使用一些合理的默认值!
而且没有图形用户界面。
我知道有一个快速版本的 rpm - 乍一看这很方便,但它似乎排除了“标准”版本包含的一些内容,例如 Pro*C。
假设您在 SQL Developer 中并想检查当前用户会话(即您的连接)是否有未提交的更改。
如果您退出 SQL Developer,它会进行这样的检查并显示一个对话框如何继续。我想在不退出的情况下检查它 - 例如通过执行特殊的 SQL 语句或 SQL Developer 操作。
理想情况下,如果可以配置 SQL Developer,以便在当前会话是“脏的”(即有未提交的更改)时直观地指示它,那就太好了——例如,通过在工作表周围显示红色边距。
oracle ×3
alter-table ×1
centos ×1
ddl ×1
installation ×1
optimization ×1
postgresql ×1
session ×1
shutdown ×1
startup ×1