簡體   English   中英

mssql查詢順序每次都在變化

[英]Mssql query sequence is changing every time

對於 Erp 版本升級,我們復制了我們的數據庫並恢復到新的。 我們改變了桌子。 (添加新列或更改寬度等。我們刪除索引並重新創建)。 畢竟我們測試了新數據庫,遇到了這樣的情況。

我們有一個類似的查詢

select top 5 * from table. 

舊數據庫:當我們連續運行查詢時,結果順序不變

新數據庫:當我們運行時,結果的順序發生變化。

我認為存在聚集索引問題,但我不知道如何確定和解決它。 有什么幫助嗎?

除非您使用 order by,否則無法保證訂單。

舊數據庫可能在表上創建了聚集索引。 請檢查一下。 但即使是聚集索引也不能總是保證排序。

如果在 TOP 語句之后不使用 ORDER BY 語句,則數據庫引擎不保證結果集的順序。 SQL 服務器希望在某些情況下快速返回合格的行,這種機制稱為行目標,很可能您的查詢執行計划使用這種機制。 另一方面,聚集索引運算符包含一個有序屬性,這向我們展示了檢索到的行是否以有序方式獲取。 在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM