很高兴认识你
另一个程序正在使用该 SQL 加载数据, 但是DB Server超过1TB。
最后一条SQL语句使用“ORDER BY”加载时间太长 如何在SQL中没有“ORDER BY”的情况下按时间戳升序排序?
SELECT timestamp
, node
, effect_ion
, effect_value
, priority
FROM "--(*vendor(PML),product(LogServer) Global Event Log @Global *)--"
WHERE (timestamp >= DATEADD(DD,-6,GETDATE()))
And
(priority BETWEEN '253' AND '255')
ORDER BY timestamp DESC
答案 0 :(得分:1)
你问:
<块引用>如何在SQL中没有“ORDER BY”的情况下按时间戳升序排序?
你没有。但是,您可以尝试添加以下索引,如果使用它,可能会让 SQL 更快地执行 ORDER BY
排序:
CREATE INDEX idx ON yourTable (priority, timestamp);
答案 1 :(得分:-2)
CLUSTER INDEXES:聚集索引定义了数据在表中的物理存储顺序。
因此,您可以根据特定列定义数据的存储顺序。
默认情况下,PRIMARY KEY 创建一个 INDEX,它导致数据以 Id (PK) 列的 ASC 顺序存储。但事实证明,这并不能保证任何排序顺序(评论中的参考链接)。
CREATE CLUSTERED INDEX <index_name>
ON <table_name>(<column_name> ASC/DESC)
为了检查表的索引,您可以使用
EXEC sp_helpindex table_name
PS:在创建索引之前,请阅读更多内容/与团队中的某个人讨论,因为它会影响查询的性能。