在sql中不指定Order by排序是按照主鍵嗎
在sql中不指定Order by,排序是按照主鍵嗎?答案是不一定。舉個例子:
查詢AttendanceEmpRank表,主鍵是AttendanceEmployeeRankId,而且是聚集索引
執(zhí)行下面的語句,發(fā)現第一句不指定Order by的結果跟第二句不一樣。
再看看執(zhí)行計劃,我們可以知道,第一句用到的是Date索引,而第二句用的是主鍵索引.
再看看另一組sql和查詢結果:
執(zhí)行計劃中用到的索引也是不同的:
所以得出結論:在不指定Order by的情況下,sqlserver會根據執(zhí)行計劃實際查詢方式來得到數據,而執(zhí)行計劃會根據sql中很多的因素(的查詢列,where條件,order by等)而使用不同的索引,最終出來的結果很可能是不同的。
相關文章
Navicat連接本地SqlServer出現?[08001][Microsoft][sQL?Server?Nati
這篇文章主要給大家介紹了Navicat連接本地SqlServer出現?[08001][Microsoft][sQL?Server?Native?Client?11.0]命名管道提供程序:無法打開與SQL?Server等錯誤的解決方法,需要的朋友可以參考下2023-09-09SQL Server 索引結構及其使用(一)--深入淺出理解索引結構
深入淺出理解索引結構2009-04-04Transactional replication(事務復制)詳解之如何跳過一個事務
事務復制由 SQL Server 快照代理、日志讀取器代理和分發(fā)代理實現。 快照代理準備快照文件(其中包含了已發(fā)布表和數據庫對象的架構和數據),然后將這些文件存儲在快照文件夾中,并在分發(fā)服務器中的分發(fā)數據庫中記錄同步作業(yè)。2014-08-08