假脱机空间不足错误-帮助优化sql/主索引

假脱机空间不足错误-帮助优化sql/主索引,sql,teradata,Sql,Teradata,我正在使用以下TeraData代码: CREATE SET TABLE WebSesData1 ( Id CHAR(5) CHARACTER SET LATIN NOT CASESPECIFIC ,WebSessionId BIGINT ) PRIMARY INDEX (WebSessionId); CREATE SET TABLE WebSesData1 ( Id CHAR(5) CHARACTER SET LATIN NOT CASESPECIFIC ,We

我正在使用以下TeraData代码:

CREATE SET TABLE WebSesData1
(
    Id CHAR(5) CHARACTER SET LATIN NOT CASESPECIFIC
    ,WebSessionId BIGINT
) PRIMARY INDEX (WebSessionId);

CREATE SET TABLE WebSesData1
(
    Id CHAR(5) CHARACTER SET LATIN NOT CASESPECIFIC
    ,WebSessionId BIGINT
) PRIMARY INDEX (WebSessionId);

SELECT 
    One.Id AS PickedId
    ,Two.Id AS InteractingId 
    ,COUNT(*) AS Evidence
FROM WebSesData1 AS One
INNER JOIN WebSesData2 AS Two
ON
    One.Id  < Two.Id
    AND One.WebSessionId = Two.WebSessionId
GROUP BY 1,2
QUALIFY ROW_NUMBER() OVER(PARTITION BY One.Id ORDER BY COUNT(*) DESC) <= 10
;
创建集合表WebSesData1
(
Id字符(5)拉丁字符集不区分大小写
,WebSessionId-BIGINT
)主要索引(WebSessionId);
创建集合表WebSesData1
(
Id字符(5)拉丁字符集不区分大小写
,WebSessionId-BIGINT
)主要索引(WebSessionId);
挑选
一个。Id为pickedd
,2.Id作为InteractingId
,计算(*)作为证据
从WebSesData1作为一个
内部将WebSesData2连接为两个
在…上
1.Id<2.Id
和One.WebSessionId=Two.WebSessionId
按1,2分组

限定行数()超过(按一个分区.Id按计数(*)顺序描述)每个
WebSessionId
平均/最大存在多少行?两个表中都有多少行?示例数据和期望的结果将非常有用。我看不到您所需内容的描述与查询之间的完整关系。@dnoeth-有6000行的websession ID。@GordonLinoff您能澄清一下您不理解的地方吗。IMHO这是一个非常简单的问题,工作表应该很好地捕捉到这一点。这可能是您能得到的最好结果,在PI上进行连接,但是当您使用n行连接两个ID时,您将创建n*(n-1)/2行的中间结果,对于n=6000,在聚合之前几乎是18000000行。这个线轴也可能是歪斜的。