c 小知識分享

2021-09-20 09:31:56 字數 768 閱讀 4588

1.為什麼不能用主鍵加上uniqueidentifier型別做聚集索引?

個人意見:首先自動生成的uniqueidentifier可讀性差,以uniqueidentifier為主鍵的表只能通過default約束來生成預設值,且insert後無法通過簡單的資料庫內建機制取得生成的值其次,最後是自動生成的uniqueidentifier主鍵會造成更多的碎片,占用更多的頁和磁碟空間,但是如果非得用這個型別,可以考慮newsequentialid

如果加上聚集索引的話,因為guid的分散性會導致插入記錄時效率大大降低,

2.為什麼sqlparameter的引數要加型別?

個人意見:如果不宣告型別是由資料庫來進行隱式型別轉換,異常也是由資料庫丟擲;而且不指定資料型別會導致很多轉換,可能會導致效能降低,如果有引數型別避免了效能降低,還有個好處是個別型別可以節省空間。

3.為什麼sqlparameter的引數要加size?

個人意見:  提高sql的執行速度,如果未新增長度,當有多個引數的時候會執行不同的執行計畫,如果設定長度並且長度一致的話,就會執行同乙個執行計畫,一般指定大小對於字元型,像int  float datetime之類的引數則不用指定,有可能指定大小會導致無法預知的錯誤。

對於第乙個問題的解釋:sqlserver中資料以行為單位儲存在樹中,樹的節點又是頁,每頁的儲存空間肯定是有限的,如果超出了儲存就會進行頁拆,分大的節點在右邊,小的在左邊,如果是有序的主鍵,新新增的肯定在右邊,這樣相應的頁拆分也會比較少,無序的uniqueidentifier會造成碎片和空間浪費,插入效率也會低。這只是我的個人理解。

Windows小知識分享

無論是剛買的電腦還是已經使用有一段時間的電腦了,都希望自己的電腦速度可以快一點,所謂速度快一點是什麼意思呢?即 開啟時間短,點開程式或者 應用反應快,玩遊戲的時候拋卻網速的原因不會出現卡頓等情況。這些都是想提公升的地方,當然了我們說的是 相差不大的一批,你總不能要求 乙個兩三千的商務電腦 和乙個 頂...

關於知識付費的小討論 知識課程分享

有一顆持續學習的心是非常難得的,學生 職場人 創業人,學習是永不會停止的。每個月一定要拿出一筆錢來學習。目前知識付費開始逐漸火了起來,也是乙個很大的風口,褒貶不一。很多人用自己的職業技能分享一些經驗,組成一系列課程,在知識平台上去銷售,順便做個副業。課程優則上千劣則過百。筆者認為如果有條件鼓勵購買官...

C語言小程式分享

define myhead h 標頭檔案內容 endif 二 print 是什麼?print 是我在print.h中定義的乙個將內容輸出到螢幕函式,沒有過多意義,用作顯示一些重複的提示語之用。三 setcolor 是什麼?setcolor是window.h下的乙個函式,用作改變ide的背景色和前景色...