關於Select * 與Select 字段名 的問題!


1、 SELECT  * 語句取出表中的所有字段,不論該字段的數據對調用的應用程序是否有用,這會對服務器資源造成浪費,甚至會對服務器的性能產生一定的影響。
2、如果表的結構在以后發生了改變,那么 SELECT  * 語句可能會取到不正確的數據甚至是出錯。
3、執行 SELECT  * 語句時,SQL Server首先要查找出表中有哪些列,然后才能開始執行 SELECT  * 語句,這在某些情況會產生性能問題。
4、使用 SELECT  * 語句將不會使用到覆蓋索引,不利於查詢的性能優化。
5、在文檔角度來看, SELECT  * 語句沒有列明將要取出哪些字段進行操作,所以也是不推薦的。
   
    
   
   
關於 Select  * 與 Select  字段名 的問題!
   
理由一:不用 * 號而列取字段,是嚴謹且良好的習慣。
   
理由二:記得在SQL2000,如果在視圖中使用了 select  *,像 SQL code
select  from  tableA
然后再修改tableA的結構, 
回過頭來看之前建立的視圖,竟發現視圖是不會自動更新的, 
即在視圖中的 select  *,返回的還是原有的舊結構, 
這種不能同步更新的情況,很容易被忽視,造成錯誤.
理由三:
   
我以前也這樣做的,不過都讓改成顯示列名了.理由是如果數據庫中的這個表有所改動,如增加一列,而根本不需要顯示.所以還是盡量用列名比較好.而且對於代碼的理解也比較好.
   
理由四:
   
不建議用*,最好是寫列名,排版好就行了。
   
理由五:
   
建議下一個SQL標准中取消  "select *" 的用法     :)   
在大多數情況下都是明確寫出列名好, 
select  * 大多數情況下是圖個方便。
   
理由六:
   
select  *只是圖個方便,當你的返回表中有入讀比較大的字段或者有二進制數據字段時,容易產生字段名混亂錯誤。你調用返回表時可能會出現的得不了具體值。一個個寫出來字段可以避免這些情況。
   
理由七:
   
這要看實際情況啥... 
考慮到大數據量時最好用字段不用*;因為用*會把其表中的如INDEX...等用不上的信息全部提取. 
習慣不用*久了秒一切OK了. 
數據量大的效率問題就出來了...
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM