<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      代碼改變世界

      走向DBA[MSSQL篇] 面試官最喜歡的問題 ----索引+C#面試題客串

      2011-11-07 13:05  熬夜的蟲子  閱讀(3206)  評論(21)    收藏  舉報

      對大量數據進行查詢時,可以應用到索引技術。索引是一種特殊類型的數據庫對象,它保存著數據表中一列或者多列的排序結果,有效地使用索引可以提高數據的查詢效率。大家面試初級、中級或者高級程序員的時候應該大部分都會被問到這樣一些問題,你了解索引嗎?你知道索引的分類嗎?你知道這些索引的區別嗎?你如何去創建有效的索引。本章讓大家學會反問面試官 hold住全場。 --_____--


      友情客串

      最近面試的文章比較火 客串一下 我只簡單問2個問題 看看有多少人能直接回答出來 都是比較基礎的

      1.基類虛函數、派生類重寫 與 基類普通函數、派生類覆蓋的區別(-____-)

      2.Using閉包中try catch,異常捕獲后拋出,那么using資源能否正常釋放,概述原因(-____-)

      答案在文章結尾揭曉


       基本知識 (面試官會問的)

      索引是神馬

      一般說法:索引是與表關聯的磁盤上結構,可以加快從表中檢索行的速度。索引包含由表中的一列或多列生成的鍵。這些鍵存儲在一個結構中,使 SQL Server 可以快速有效地查找與鍵值關聯的行。

      hold說法:索引說白了就是Balanced Tree(簡稱B樹)結構,多層次、自維護,節點存放表的數據標識信息,如果表中的一條記錄在磁盤上占用500字節的話,我們對其中10字節的一個字段建立索引,那么該記錄對應的索引塊的大小只有10字節。這樣檢索IO訪問量要少的多。

      索引的分類

      一般說法:聚集索引與非聚集索引

      hold說法:聚集索引、非聚集索引、唯一索引、包含性列索引、索引視圖、全文索引、XML索引

      說下聚集索引與非聚集索引的區別

      一般說法:聚集索引是基于記錄內容在數據表內的排序和存儲。非聚集索引不會為數據表的數據進行物理上排序,只是將索引建立在索引頁上,在查詢數據時一樣可以從索引中找到記錄存放的位置。

      hold說法:聚集索引根據數據行的鍵值在表中排序和存儲這些數據行。索引定義中包含聚集索引列。每個表只能有一個聚集索引,因為數據行本身只能按一個順序排序。只有當表包含聚集索引時,表中的數據行才按排序順序存儲。如果表具有聚集索引,則該表稱為聚集表。如果表沒有聚集索引,則其數據行存儲在一個稱為堆的無序結構中。
      非聚集索引具有獨立于數據行的結構。非聚集索引包含非聚集索引鍵值,并且每個鍵值項都有指向包含該鍵值的數據行的指針。從非聚集索引中的索引行指向數據行的指針稱為行定位器。行定位器的結構取決于數據頁是存儲在堆中還是聚集表中。對于堆,行定位器是指向行的指針。對于聚集表,行定位器是聚集索引鍵。

      一張表中可以建立幾個聚集索引和非聚集索引

      一般說法:1個聚集索引和249個非聚集索引

      hold說法:冷哼一聲、笑而不語。

      索引的設計原則

      一般說法:表增刪改操作多的少用索引 查操作多的適當建立索引

      hold說法:

      1.大量的索引會影響DML語句的性能;

      2. 對小表進行索引可能不會產生優化效果;

      3.對經常用于查詢中的謂詞和連接列創建非聚集索引;

      4.覆蓋索引可以提高查詢性能;

      5.聚集索引,最好保持較短的索引鍵;

      6.考慮對定義完善的的列使用篩選索引;

      7.如果索引包含多個列 ,應考慮列的順序;


      進階知識(可以用來調戲面試官)

      創建索引的限制

      每個索引最多16個鍵列;
      索引鍵最長900字節;
      大型對象數據類型不能作為索引鍵列;

      唯一索引:唯一索引確保索引鍵不包含重復的值,因此,表或視圖中的每一行在某種程度上是唯一的。聚集索引和非聚集索引都可以是唯一索引。

      設計原則:

      唯一索引能夠保證索引鍵中不包含重復的值,從而使表中的每一行從某種方式上具有唯一性。只有當唯一性是數據本身的特征時,指定唯一索引才有意義。例如,如果您希望確保 HumanResources.Employee 表的 NationalIDNumber 列中的值唯一,當主鍵為 EmployeeID 時,可以為 NationalIDNumber 列創建一個 UNIQUE 約束。如果用戶嘗試在該列中為多個雇員輸入相同的值,將顯示錯誤消息并且不能輸入重復的值。

      唯一索引能夠確保定義的列的數據完整性并提供了對查詢優化器有用的附加信息。

      包含性列索引:一種非聚集索引,它擴展后不僅包含鍵列,還包含非鍵列。

      設計原則:

      重新設計索引鍵大小較大的非聚集索引,以便只有用于搜索和查找的列為鍵列。將覆蓋查詢的所有其他列設置為包含性非鍵列。這樣,將具有覆蓋查詢所需的所有列,但索引鍵本身較小,而且效率高。

      USE AdventureWorks;
      GO
      SELECT AddressLine1, AddressLine2, City, StateProvinceID, PostalCode
      FROM Person.Address
      WHERE PostalCode BETWEEN N'98000' and N'99999';
       
      

       若要覆蓋查詢,必須在索引中定義每列。盡管可以將所有列定義為鍵列,但鍵大小為 334 字節。因為實際上用作搜索條件的唯一列是 PostalCode 列(長度為 30 字節),所以更好的索引設計應該將 PostalCode 定義為鍵列并包含作為非鍵列的所有其他列。

      USE AdventureWorks;
      GO
      CREATE INDEX IX_Address_PostalCode       
      ON Person.Address (PostalCode)       
      INCLUDE (AddressLine1, AddressLine2, City, StateProvinceID);
      

       索引視圖:視圖的索引將具體化(執行)視圖,并將結果集永久存儲在唯一的聚集索引中,而且其存儲方法與帶聚集索引的表的存儲方法相同。創建聚集索引后,可以為視圖添加非聚集索引。

      設計原則:對視圖創建索引的另一個好處是:優化器可以在未直接在 FROM 子句中指定某一視圖的查詢中使用該視圖的索引。這樣一來,可從索引視圖檢索數據而無需重新編碼,由此帶來的高效率也使現有查詢獲益。

      索引視圖可以提高下列查詢類型的性能:1.處理大量行的聯接和聚合。2.許多查詢經常執行的聯接和聚合操作。 3.決策支持工作負荷。  

      全文索引:這個蟲子以后會單獨開全文檢索章節來講

      XML:xml 數據類型列中 XML 二進制大型對象 (BLOB) 的已拆分持久表示形式。XML實例的最大數據量可以達到2GB,如果在沒有索引的xml字段里查詢會很
      耗時,在XML字段上創建的索引就是xml索引。
      設計原則:主 XML 索引,輔助 XML 索引。xml 類型列的第一個索引必須是主 XML 索引。使用主 XML 索引時,支持三種類型的輔助索引。這些類型包括 PATH、VALUE 和 PROPERTY。根據查詢類型的不同,這些輔助索引可能有助于改善查詢性能。


      提高篇(和面試無關了)

      索引優化

      無論何時對基礎數據執行插入,更新或刪除操作,數據庫引擎都會自動維護索引。這些修改可導致索引中產生碎片;碎片非常多的索引可能會降低查詢性能,導致應用程序響應緩慢。

      1.定期整理索引;
      2.設置索引并行度;
      3.分析TRACE數據,調整索引;

      聚集表、堆和索引

      聚集表是有聚集索引的表。數據行基于聚集索引鍵按順序存儲。聚集索引按 B 樹索引結構實現,B 樹索引結構支持基于聚集索引鍵值對行進行快速檢索。索引中每個級別的頁(包括葉級別的數據頁)鏈接在一個雙向鏈接的列表中。但是,通過使用鍵值來執行從一個級別到另一級別的導航。

      堆是沒有聚集索引的表。數據行不按任何特殊的順序存儲,數據頁也沒有任何特殊的順序。數據頁不在鏈接列表內鏈接。

      菜鳥如何有效的創建索引

      前提是你有線上服務器的權限 -___-

      首先打開SQL Server Profiler新建一個跟蹤

      根據自己選擇針對性選擇屬性

      運行一段時間保存跟蹤文本

      打開優化引擎

      根據自己需求設置

      分析并根據系統的建議進行優化

      因為蟲子跑的本地環境 下面的步驟就不截圖了 你們都懂的


       和索引關聯的存儲過程

      sp_helpindex報告有關表或視圖上索引的信息。

      exec sp_helpindex 'PPS_App_Infomation'
      

       

      根據sys.indexes視圖來查看索引信息

      select * from sys.indexes
      

      至于索引增刪查改的語法網上一搜一片的 就不造輪子了 關于索引還有很多高級應用例如 虛擬列索引、選擇索引等等 不過大家未必感興趣 實用才是王道 如果有人對這些感興趣可以留言討論


       客串答案

      是不是網上也沒找到想要的答案 O(∩_∩)O

      1.虛函數重寫是運行時的多態  派生類的覆蓋是隱藏基類的方法

      2.using的dispose原理和try catch的finally是一樣的

      很多程序員會抱怨別人和自己同樣的工齡 為什么別人的薪水那么高 也有很多程序員覺得自己牛氣沖天 只是沒遇到伯樂 其實當自己不淡定的時候 不如回頭看看 重頭學一遍 或許自己的觀點會改變很多 


        希望本篇對大家幫助 大家的支持才是蟲子的動力 -____-



       

      主站蜘蛛池模板: 国产午夜A理论毛片| 精品国产一区二区在线视| 国精偷拍一区二区三区| 综合人妻久久一区二区精品| 一区二区三区精品视频免费播放 | 大荔县| 亚洲激情一区二区三区在线| 波多野结衣视频一区二区| 亚洲一区二区av偷偷| 一区二区三区av天堂| 国产无套内射又大又猛又粗又爽| 平武县| 国产不卡一区二区精品| 激情在线网| 一个人看的www免费高清视频| 亚洲精品久久国产高清小说| 成A人片亚洲日本久久| 黄男女激情一区二区三区| 缙云县| 国产午夜精品福利视频| 亚洲av永久无码精品天堂久久| 特级精品毛片免费观看| 久久久久无码精品国产h动漫| 全黄h全肉边做边吃奶视频| 偷拍一区二区三区在线视频| 午夜射精日本三级| 亚洲区色欧美另类图片| 国产午夜福利一区二区三区| 国产精品无码无卡在线播放| 欧美成人aaa片一区国产精品| 涿州市| 成人乱码一区二区三区四区| 亚洲色大成网站www在线| 欧美肥老太交视频免费| 国产AV无码专区亚洲AWWW| 女厕偷窥一区二区三区| 高清偷拍一区二区三区| 熟妇的奶头又大又长奶水视频| 草草线在成年免费视频2| 无码一区二区三区视频| 在线人人车操人人看视频|