(当只涉及两个表时,oracle 的优化器对两种方法执行相同的操作,因此我的问题涉及三个表)
假设三个表t1
,t2
并t3
与成对1:n
由左到右的关系:
t1 (1)--(n) t2 (1)--(n) t3
Run Code Online (Sandbox Code Playgroud)
每个分区p
在所有连接中使用的公共列上,每个分区都有一个主键id
、外键t2.id1 -> t1.id
和t3.id2 -> t2.id
.
实际上,n
(两者)都很小。可能t2
每t1
行大约 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)
它给出t3
每t2
行的行数并将 …
sql server 中的聚集索引,如字典或电话簿。A、B、C、D 继续。
如果您查找名称 Ozgur,则以 O 开头,然后是 z 等。
我想为精通 oracle 的用户对这个概念做一个简单的解释。
有关 Sql Server 中聚集索引的更多信息。 什么是聚集索引?
我有一个相当复杂的查询。我写了两个不同的查询来实现我的目标。第一个是使用 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) 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。
我找到了以下解决方案 …
我正在尝试将 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语句?
我正在寻找源代码和所有相关组件/材料来审查源数据库和数据仓库之间的技术 ETL 过程,以增加我在技术商业智能方面的知识。我在哪里可以找到这些类型的源代码和数据库?
我可以找到 Adventurework OLTP 及其 DW 的数据库,但找不到 ETL 过程的源代码
如何获取为调试而编译的存储过程/函数列表?
我在下表中没有看到相关列。