我对Oracle数据库配置感到有点困惑。
我的服务器:
操作系统: Windows 2012 R2 64位
RAM: 40 RAM
Oracle: Oracle数据库12c (12.1.0.2.0) 64位
我的目标:
Oracle应该使用32 of的40 of
AMM应该被激活(我不想自己配置所有东西)
当前参数:
SQL> SHOW PARAMETER SGA
NAME TYPE VALUE
------------------------------------ ----------- ---------
我知道SGA (包含一个Oracle数据库实例的数据和控制信息)代表系统全局区( System Global Area ),而PGA (包含专供Oracle进程使用的数据和控制信息)代表程序全局区( Program Global Area ),但我并不真正理解变量对数据库的作用。如果SGA的配置比PGA大10倍,那么在检索数据时会有什么帮助?
之前我得到的是PGA_AGGREGATE_LIMIT超出的问题。所以我把PGA_AGGRIGATE_LIMIT改成了0(没有限制)。
我们有47 We的内存。我们已经设置了PGA_AGGREGATE_LIMIT=0。和PGA_TARGET=10GB。仍然得到“进程外内存问题”的任何建议,在这里将不胜感激。
下面是错误:
java.sql.SQLException: ORA-04030: out of process memory when trying to allocate 107096 bytes (kolarsCreateCt,qmemNextBuf:Large Alloc)
ORA-0
我正在开发Oracle12c内存数据库,因为我将MEMORY_TARGET增加到32 in,这是我共享的文件系统的大小。当我重新启动Oracle数据库时,它显示了Total Area= 3.3286E+10字节,但之后当我使用ALTER SYSTEM SET SGA_TARGET = 28G SCOPE= SPFILE;命令时,系统会给出Specified value of MEMORY_TARGET is too small, needs to be at least 35136M的错误。
SGA_target和总系统全球面积有什么不同吗?那又是什么?
当我的一个团队成员创建oracle文本索引时,我遇到了ORA-04036 (在12c上)。
ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
ORA-20000: Oracle Text error:
ORA-00039: error during periodic action
ORA-04036: PGA memory used by the instance exceeds PGA_AGGREGATE_LIMIT
ORA-06512: at "CTXSYS.DRUE", line 1
我想使用Oracle的自动内存管理,限制在4GB左右。(过去的经验表明,这对我的dev PC来说是足够多的,而且它可以更容易地理解任何性能问题。)
我相信以下是有关的指示:
Oracle12自动内存管理
简而言之,要启用自动内存管理,请设置memory_target和(可选) memory_max_target。前一个参数应该是一个动态值,而后者是一个更严格的限制,只有在停止/启动数据库时才能更改。
我将它们设置为sysdba:
SQL> alter system set memory_target = 4G scope = spfile;
System altered.
SQL&g
我是PostgreSQL新手,我想知道是否有一个与PostgreSQL的user_cons_columns表相匹配的表,该表提供了一个类似于PostgreSQL的列位置列实际上,我试图将下面的甲骨文代码转换为PostgreSQL。它按PK定义的顺序获得PK列:
甲骨文代码(原件):
select a.table_name tab_name,
a.colum_name col_name,
a.position col_order
from user_cons_columns a,
user_constraints b
where a.table_na
在Spring批处理中,读取和写入数据库的记录最多可达31000条。在31000条记录后,得到以下例外:
java.sql.SQLRecoverableException:
Encountered an error executing the step
org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is java.sql.SQLRecoverableException: IO E
我想在PAYMENT_GATEWAY查询中获得名称。我用这张桌子:
CREATE TABLE PAYMENT_GATEWAY(
ID SERIAL NOT NULL,
NAME TEXT
)
;
ALTER TABLE PAYMENT_GATEWAY ADD CONSTRAINT KEY38 PRIMARY KEY (ID)
;
CREATE TABLE PAYMENT_GATEWAY_ACCOUNT(
ID SERIAL NOT NULL,
PAYMENT_GATEWAYT_ID INTEGER
)
;
CREATE INDEX IX_RELATIONSHIP18 ON PAY
例如,我有以下代码:
CREATE TYPE t_object IS OBJECT (field1 NUMBER
,field2 VARCHAR2(10));
/
DECLARE
v_object t_object;
BEGIN
FOR i IN 1 .. 3000000 LOOP
v_object := NEW t_object(i, to_char(i));
END LOOP;
END;
如果我正确理解,在每次迭代中,oracle都会创建对象的新实例。但是oracle如何为每个已创建的实例分配内存呢?orac
我想检索postgres db中的所有函数索引及其列名。但是在绑定了很多次之后,我无法获得函数索引的列名。 从下面的查询中,我能够获得单个普通索引类型。 select t.relname as tableName,
i.relname as indexName,
STRING_AGG(pga.attname||'', ','order by i.relname,pga.attnum) as columnName
from pg_class t
inner join pg_index ix
我已经使用"Database Configuration Assistant“创建了一个oracle实例。我的系统有64 My的RAM。在初始化参数向导中,我为oracle实例提供了16 in空间。
现在我想将16 8GB减少到8 8GB。因此,oracle占用的RAM将为8 8GB。我已经在SQL Developer中尝试过了,
ALTER SYSTEM SET pga_aggregate_target = 8289 M;
ALTER SYSTEM SET sga_target = 1536 M;
我重新启动了oracle服务。它没有被反映出来。尽管如此,oracle仍在使用16 i
以下查询连接3个表:
select * from product_group_pids as pgp
join product_group_attributes pga on pga.group_id=pgp.group_id
join product_group_attribute_values pgav on pgav.group_id=pgp.group_id
where pgp.group_id = (219138)
在所有3个group_id表中,Result将显示相同group_id的3倍。如何限制只显示一次?为表中的多个字段显式指定别名没有意义。我能得到任何限制join
SELECT
(SELECT v_value as "@value", columnname as "@columnname",
updatedby as "@updatedby", emailid as "@emailid",
updatedon as "@updatedon"
from nodetable, Progresss PGA, mastertable
where columnname =
我试图在sqlplus中运行一个脚本,该脚本通过“立即执行”填充一个名为“ccb_check”的表,但当试图分配56个字节时,我得到'ORA-04030:进程内存不足‘(回调,qerrmbv[]:qerrmObnd)。
set serveroutput on
declare
begin
EXECUTE IMMEDIATE 'INSERT INTO ccb_check
SELECT
/*+DRIVING_SITE(A)*/
/*+DRIVING_SITE(B)*/
/*+DRIVING_SITE(C)*/
/*+DRIVING_SITE(D)*/
/*+DRIVING_SI