小编Ati*_*gur的帖子

我应该先分组再加入,还是先加入再分组?

(当只涉及两个表时,oracle 的优化器对两种方法执行相同的操作,因此我的问题涉及三个表)

假设三个表t1t2t3与成对1:n由左到右的关系:

t1 (1)--(n) t2 (1)--(n) t3
Run Code Online (Sandbox Code Playgroud)

每个分区p在所有连接中使用的公共列上,每个分区都有一个主键id、外键t2.id1 -> t1.idt3.id2 -> t2.id.

实际上,n(两者)都很小。可能t2t1行大约 2t3行,从t2.

我希望像这样加入这些表:

select t1.id t1id, t2.id t2id, count(1) t3count
from t1 join t2 on (t1.p = t2.p and t1.id = t2.id1)
        join t3 on (t2.p = t3.p and t2.id = t3.id2)
group by t1.id, t2.id
Run Code Online (Sandbox Code Playgroud)

它给出t3t2行的行数并将 …

oracle oracle-11g-r2 partitioning group-by

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

什么是 Oracle 术语中的 Sql Server 聚集索引

sql server 中的聚集索引,如字典或电话簿。A、B、C、D 继续。
如果您查找名称 Ozgur,则以 O 开头,然后是 z 等。

我想为精通 oracle 的用户对这个概念做一个简单的解释。

有关 Sql Server 中聚集索引的更多信息。 什么是聚集索引?

index oracle sql-server terminology

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

在 Oracle 中使用 INDEX 提示

我有一个相当复杂的查询。我写了两个不同的查询来实现我的目标。第一个是使用 WITH,另一个是使用全局临时表。

第一:

WITH A
(
 KNO 
 ..
 )
 , B
 (
 KNO
 ...
 )
 , C
 (
 KNO
 ...
 )
 SELECT * from 
 A INNER JOIN B 
 on A.KNO = B.KNO
 INNER JOIN C
 on B.KNO = C.KNO
Run Code Online (Sandbox Code Playgroud)

第二个:

Truncate Table tempA;
Truncate Table tempB;
Truncate Table tempC;

INSERT INTO tempA SELECT -- Same select which constructs WITH A
INSERT INTO tempB SELECT -- Same select which constructs WITH B
INSERT INTO tempC SELECT -- Same select which constructs …
Run Code Online (Sandbox Code Playgroud)

index oracle materialized-view

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

如何将 LOB_DATA ( varbinary/image/text) 移动到不同的文件组

LOB_DATA : varbinary(max),varchar(max), image , text 列。

我有 4 个包含大量 LOB_DATA 的表。我想将这些表中的 LOB_DATA 移动到不同硬盘中的不同文件组。

我在这个文件组中创建了一个新的文件组和文件。我还使用 了这个问题中的 sql 命令。但是 varbinary 列存储仍然保留在以前的位置。

-- To move table data to new filegroup
CREATE UNIQUE CLUSTERED INDEX PK_YourTableName 
ON dbo.YourTableName(YourPKFields)
WITH (DROP_EXISTING = ON) ON [NewFilegroup]
Run Code Online (Sandbox Code Playgroud)

我使用以下 sql来查看 lob_data 的文件组。

-- To see lob_data filegroups
SELECT OBJECT_NAME(object_id) as OBJECT_NAME, FILEGROUP_NAME(data_space_id) as 
FILE_GROUP_NAME, type_desc
FROM sys.partitions p
JOIN sys.allocation_units a
on p.partition_id = a.container_id
WHERE
type_desc = 'LOB_DATA'
Run Code Online (Sandbox Code Playgroud)

我正在使用 SQL Server 2008。

我找到了以下解决方案 …

sql-server-2008 sql-server

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

Oracle 与 Statement 和 Delete 一起使用

我正在尝试将 WITH 语句和 DELETE 一起使用。但我收到ORA-00928错误。基本上我的代码如下

WITH TO_DELETE
AS
(
SELECT TableKey
  FROM SOME_TABLE
  WHERE SomeConditions LIKE '%'
)
DELETE FROM TO_DELETE

-- SELECT * FROM TO_DELETE
Run Code Online (Sandbox Code Playgroud)

此代码适用于 SQL Server 2005+,但在 Oracle 中出错。知道如何解决这个问题吗?

存在以下解决方法。

  • 使用临时表并将其删除。
  • 使用以下内部选择结构。

    DELETE FROM ( SELECT TableKey FROM SOME_TABLE WHERE SomeConditions LIKE '%' )

我想知道有什么方法可以使用 WITH语句?

oracle sql-server

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

审查知识管理的技术 ETL 过程

我正在寻找源代码和所有相关组件/材料来审查源数据库和数据仓库之间的技术 ETL 过程,以增加我在技术商业智能方面的知识。我在哪里可以找到这些类型的源代码和数据库?

我可以找到 Adventurework OLTP 及其 DW 的数据库,但找不到 ETL 过程的源代码

data-warehouse sql-server business-intelligence

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

Oracle 如何查找调试编译的存储过程/函数

如何获取为调试而编译的存储过程/函数列表?

我在下表中没有看到相关列。

  • DBA_PROCEDURES
  • DBA_OBJECTS

oracle stored-procedures system-tables

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