小编Mar*_*ero的帖子

内存地址0x0是否可用?

我想知道......如果当你做一个新的,预订开始的地址是0x0?我想这不可能,但为什么呢?是为此准备的新运营商?是第一个字节的一部分不可用吗?操作系统启动时始终保留它?

谢谢!

c++ null pointers memory-management new-operator

5
推荐指数
1
解决办法
4113
查看次数

从范围分区到范围间隔

我想从Range Partition移动到Range-Interval,但我当前的表上有一个分区,MAXVALUE用于分区的列允许空值:(

例如:说我们有:

create table a (b number)
partition by range (b) (
  PARTITION p0 VALUES LESS THAN (10),
  PARTITION p1 VALUES LESS THAN (50),
  PARTITION p2 VALUES LESS THAN (MAXVALUE)
);
Run Code Online (Sandbox Code Playgroud)

然后我们填充:

INSERT INTO a(b) VALUES (1);
INSERT INTO a(b) VALUES (11);
INSERT INTO a(b) VALUES (51);
INSERT INTO a(b) VALUES (null);
Run Code Online (Sandbox Code Playgroud)

为了能够移动到间隔,我们需要删除分区MAXVALUE,因此,应将其他值移动到新分区.
51不是问题,我会在哪里创建分区VALUES LESS than 100,但是NULL那些呢?

我正在考虑改变范围内的分区(NVL(b,0)),但我害怕必须重新处理整个表(不可能,真正的表有很多数据).

任何的想法?

oracle oracle11g data-partitioning

4
推荐指数
1
解决办法
1923
查看次数

在进行连接时改进搜索.集群表?

假设我们有三张桌子:
-Buildings
-Rooms
-People

建筑物可以有1到30个房间(比如说平均值是3个)
而建筑物可以有0到30个人(平均3个)
一个房间和一个人只能属于一个单独的建筑物.

每个月我们都会在我们的数据库中添加约50,000个新建筑物及其房间和人员.
我们可以删除超过2年的数据,因此我们将拥有大约1.2M的建筑行.

主要问题是我们想要搜索并返回通常(但不总是)包含至少两个表(建筑物始终存在)的数据,因此我们必须执行连接.

我研究了3个解决方案

  • 标准化数据(由于连接和低可伸缩性导致的低性能)
  • 在Rooms和People表中复制建筑数据.(快但我一般不喜欢非规范化)
  • Oracle集群表.(似乎提供了良好的性能和数据仍然正常化)

所以问题是:
Oracle Cluster是否适合这种情况?
是否可以连续向这样的群集添加行?
如果你不推荐Cluster,为什么以及什么更适合?

细节:

簇:

SELECT *
FROM
  (SELECT *
    /*+ FIRST_ROWS(200)*/
  FROM BUILDING_C R
  INNER JOIN PEOPLE_C C
  ON (R.BUILDING_id = C.BUILDING_id)  
  INNER JOIN ROOM_C S
  ON (S.BUILDING_id = R.BUILDING_id)
  WHERE S.OPEN_DATE               >= SYSDATE - 60 -1
  AND S.OPEN_DATE               <= SYSDATE - 60
  ORDER BY S.OPEN_DATE
  )
WHERE rownum < 200;--17 consistent gets
Run Code Online (Sandbox Code Playgroud)

自动跟踪输出

标准化:

SELECT *
FROM
  (SELECT *
    /*+ FIRST_ROWS(200)*/
  FROM BUILDING_N …
Run Code Online (Sandbox Code Playgroud)

oracle join normalization oracle11g

3
推荐指数
1
解决办法
389
查看次数

NOT NULL约束和CHECK之间的区别(attr不为null)

我想为alter key(NOT NULL + UNIQUE)创建一个轮廓约束,但我认为NOT NULL约束不能放置轮廓,因此,我认为我必须选择:

  • 大纲约束: CHECK(attr IS NOT NULL)
  • 内联约束NOT NULL+轮廓约束UNIQUE(attr)

将内联约束NOT NULL设置为列并添加约束之间是否有任何区别CHECK (column IS NOT NULL)

提前致谢

database oracle isnull

2
推荐指数
1
解决办法
4867
查看次数

内联公共接口的方法

通常我更喜欢完全拆分声明和定义,因此,我倾向于定义内联方法,.cpp
我只是希望链接优化器在不同的编译单元中使用它时将其内联。

我的问题是:

  1. 如果我知道我的链接器在链接时支持内联,真的不鼓励在 cpp 中内联吗?
  2. 如果我想从另一个库调用该函数应该怎么做?(它会起作用吗?)

c++ linker compilation inline

1
推荐指数
1
解决办法
678
查看次数