MSSQL 的Top 和 MAX 效率測試

2022-04-01 12:49:25 字數 808 閱讀 9599

環境:

mssql 2008, 都在沒有使用快取的情況下面執行

表中有8w 條記錄

分類1有134條記錄

分別測試了3個語句

--

aselect

欄位1from

表1 where ftype=

'分類1

'order by 欄位1

--

bselect

top1

欄位1from

表1 where ftype=

'分類1

'order

by 欄位1 desc--c

select

max(欄位1)

from

表1 where ftype=

'分類1

'

a 語句 很快幾乎0秒

b 語句 需要近 8秒

c 語句和 b一樣 需要8 秒

看來top和max的效率是及其的低啊

後來求最大值換了乙個寫法

declare

@var01

select

@var01

=欄位1

from

表1 where ftype=

'分類1

'order

by 欄位1 asc

select

@var01

速度和a寫法一樣

剛剛繼續測試了一下

改成top 100, top 200速度很快

改成top 1, top 10速度都很慢,搞不懂ms。

SQL中MAX 和MIN 的用法

select max column name min column name from table name1 查詢teacher表中教師的最大年齡。例項 select max age as max age from teacher這樣只能查出來乙個最大值,不能查出教師的id,name等其他資訊。2...

MySql exists和in的效率

如果查詢的兩個表大小相當,那麼用in和exists差別不大。如果兩個表中乙個較小,乙個是大表,則子查詢表大的用exists,子查詢小的用in 例如 表a 小表 表b 大表 1 select from a where cc in select cc from b 效率低,用到了a表上cc列的索引 se...

Linux核心中的Min和Max函式

今天看 時看到乙個有趣的東東,就是linux核心也有min函式,但它的實現很是奇怪,先貼出來 min max macros that also do strict type checking.see the unnecessary pointer comparison.define min x,y ...