sql="select top 30 * from data where title='"&title1&"' order by id desc"
原意是選出符合“where 條件”的記錄集里的“前30條”
但是,對於該SQL語句,由於語句里同時存在where和top語句的,並且where條件列不是合適的索引,程序執行的是全表掃描,首先是查找符合where條件的記錄, 而這里的top限制形同虛設。如果全表是百萬級別以上的數據表,那么就這么一個簡單的判斷,就有可能拖垮數據庫。
所以需要先把符合“where條件”的記錄,用一個子查詢篩選出來,再在篩選結果集里選top30。
因為SQL規則規定,如果子查詢里,有order ...,就必須有TOP,所以就用SELECT TOP 100 PERCENT來限定,top 100 percent是為了保證篩選出所有符合條件的數據條目。