<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          SQL管理過(guò)程中踩過(guò)的那些坑

          共 3461字,需瀏覽 7分鐘

           ·

          2021-04-13 22:35

          點(diǎn)擊關(guān)注上方“SQL數(shù)據(jù)庫(kù)開(kāi)發(fā)”,

          設(shè)為“置頂或星標(biāo)”,第一時(shí)間送達(dá)干貨

          SQL專(zhuān)欄

          SQL基礎(chǔ)知識(shí)第二版
          SQL高級(jí)知識(shí)第二版

          作者:Woodytu

          https://www.cnblogs.com/woodytu/p/5280838.html


          1、SQL Server 最小存儲(chǔ)單元是什么?多大?再上一層存儲(chǔ)單元是什么?多大?
          答:
          頁(yè)或page,8kb大小,上一層是區(qū),一個(gè)區(qū)有8個(gè)頁(yè),共64k。

          2、堆表和非堆表的本質(zhì)區(qū)別?
          答:堆表沒(méi)有聚集索引,非堆表有,看具體情況,可以是聚集索引和非聚集索引。

          3、SQL Server有多少種索引?盡可能列出來(lái)。

          答:總的有聚集索引和非聚集索引,另外有覆蓋索引和過(guò)濾索引。

          聚集索引和非聚集索引都是B樹(shù)結(jié)果,區(qū)別是聚集索引的葉子節(jié)點(diǎn)保存的是表的聚集鍵,非聚集索引根據(jù)所在表的不同,如果在聚集表(表里已經(jīng)有一個(gè)聚集索引),則頁(yè)子節(jié)點(diǎn)保存的是指向聚集索引的聚集鍵,如果在堆表(沒(méi)有索引),則葉子節(jié)點(diǎn)保存的是RID(即文件號(hào):頁(yè)號(hào):槽號(hào))。

          覆蓋索引是非聚集索引的葉子節(jié)點(diǎn)也保存了要查詢的列,可以用來(lái)避免書(shū)簽查找。過(guò)濾索引包含條件的索引,這些索引只針對(duì)符合條件的數(shù)據(jù)進(jìn)行建立,可以針對(duì)命中這些條件的記錄提高查詢效率。


          4、SQL Server有多少個(gè)系統(tǒng)庫(kù)?
          答:4個(gè),mater,model,msdb,tempdb。
          其實(shí)還有兩個(gè)系統(tǒng)數(shù)據(jù)庫(kù),一個(gè)是Resource Database,另一個(gè)是distribution(建了復(fù)制才有)。

          5、如果一個(gè)報(bào)表存儲(chǔ)過(guò)程很慢,你的思路是什么?
          答:看下執(zhí)行計(jì)劃,看看是不是缺少索引,還是統(tǒng)計(jì)信息過(guò)期,還是具體的查詢語(yǔ)句問(wèn)題。

          6、圖形化執(zhí)行計(jì)劃閱讀順序?
          答:從右到左,從下到上。

          7、怎么在SSMS中得知某個(gè)SQL語(yǔ)句的物理讀、邏輯讀次數(shù)?
          答:可以使用SET STATISTICS IO  ON。

          8、Profiler/SQL Trace和Extent Event相比,在過(guò)濾數(shù)據(jù)的行為上有什么不同?
          答:目前只了解過(guò)Profile,可以用它來(lái)跟蹤SQL語(yǔ)句,區(qū)別不知道。

          9、有下面一個(gè)表:
          CREATE TABLE T
          (ID INT IDENTITY(1,1),
          aqty INT,
          bqty INT)
          大致數(shù)據(jù)如下:
          1 1 2
          2 2 3
          3 2 1
          4 3 5
          ....
          假設(shè)數(shù)據(jù)有幾百萬(wàn),現(xiàn)在有個(gè)語(yǔ)句很慢:
          SELECT ID
          FROM T
          WHERE aqty>bqty
          列上已經(jīng)有索引,你能想到根本原因是什么?你會(huì)怎么優(yōu)化?
          答:表掃描。條件無(wú)法使用索引,只能一條條的判斷了。而且表掃描也不是最慢的,在有些場(chǎng)景下如果索引和查詢使用的不好會(huì)導(dǎo)致性能暴跌,甚至不如表掃描。

          10、你覺(jué)得為什么跨服務(wù)器多表關(guān)聯(lián)查詢時(shí)“可能”性能很差?你能想到哪些可以提升跨服務(wù)器查詢時(shí)性能低下的方法?
          答:可以參考下分布性查詢或分布性事務(wù)

          11、如何清空有外鍵的表的數(shù)據(jù)?
          答:可以嘗試取消外鍵約束,再用truncate后加會(huì)外鍵約束。

          12、LDF暴增怎么辦?你先查哪個(gè)DMV?
          答:可以先進(jìn)行一次完成備份,收縮下日志;空間允許的情況下,先修改日志文件大小,待收縮后,再還原為原來(lái)的大小。sys.dm_db_log_space_usage

          13、如果某個(gè)JOB的所有者是sa,能不能禁用sa?
          答:可以的,禁用sa并不會(huì)對(duì)JOB有什么影響,依然可以正常執(zhí)行。

          14、SSMS修改一個(gè)表的一列的數(shù)據(jù)類(lèi)型 ,與用T-SQL實(shí)現(xiàn)ALTER TABLE 的底層實(shí)現(xiàn)區(qū)別在哪? 
          答:一般小表用SSMS可以修改成功,大表會(huì)提示超時(shí),只能用T-SQL語(yǔ)句來(lái)修改。

          15、UNION 和UNION ALL從性能上的區(qū)別是什么?
          答:UNION會(huì)去掉重復(fù)數(shù)據(jù),UNION ALL不會(huì)去掉重復(fù)數(shù)據(jù),UNION會(huì)消耗更多的資源去查找并去掉重復(fù)數(shù)據(jù)。
          如果確認(rèn)兩個(gè)查詢無(wú)重復(fù)記錄用UNION ALL更好些,不需要去重步驟

          16、初始安裝SQL Server 2008及其以上版本時(shí),SQL Server默認(rèn)是什么啟動(dòng)賬號(hào)?
          答:network service。

          17、不在域中的兩臺(tái)服務(wù)器做數(shù)據(jù)庫(kù)鏡像,與在域環(huán)境相比,必不可少的一個(gè)操作是什么?
          答:設(shè)置host文件。必需創(chuàng)建證書(shū)。這是鏡像在域或非域中最大的區(qū)別。

          18、事務(wù)復(fù)制對(duì)表最起碼有哪個(gè)硬性要求?
          答:表必須有主鍵

          19、你能不能猜到什么結(jié)果?為什么?
          DECLARE @demo VARCHAR
          SET @demo = '你猜猜會(huì)怎樣?'
          SELECT @demo
          答:沒(méi)有指定VARCHAR長(zhǎng)度會(huì)顯示空白,沒(méi)有指定varchar長(zhǎng)度,默認(rèn)是長(zhǎng)度1,并不是0。中文占兩個(gè)字節(jié)顯示,如果是下列語(yǔ)句:
          DECLARE @demo VARCHAR
          SET @demo = '123'
          SELECT @demo
          會(huì)顯示1。
          如果使用的是NVARCHAR則默認(rèn)長(zhǎng)度是2。

          20、怎么優(yōu)化這段代碼?
          USE AdventureWorks
          GO
          DECLARE @date DATE = '2013-09-30'
          SELECT SalesOrderID,
             SalesOrderDetailID,
             ModifiedDate
          FROM Sales.SalesOrderDetail
          WHERE CONVERT(VARCHAR(20), ModifiedDate, 23) = CONVERT(VARCHAR(20), @date, 23)
          答:不應(yīng)該在條件里使用表達(dá)式,應(yīng)該做如下修改:
          USE AdventureWorks
          GO
          DECLARE @date DATE = '2013-09-30'
          SELECT SalesOrderID,
             SalesOrderDetailID,
             ModifiedDate
          FROM Sales.SalesOrderDetail
          WHERE ModifiedDate = CONVERT(datetime,@date)


          21、十萬(wàn)左右的數(shù)據(jù)要作為臨時(shí)數(shù)據(jù),你用臨時(shí)表還是表變量?大概說(shuō)說(shuō)理由。
          答:使用臨時(shí)表,臨時(shí)表上可以建立索引,可以使用統(tǒng)計(jì)信息來(lái)優(yōu)化。

          22、入職后大概工作:
          • 完成大概5~8份文檔,所以你需要有一定的文檔編寫(xiě)水平。
          • 協(xié)助完成數(shù)據(jù)庫(kù)源代碼管控任務(wù)。
          • 逐步接手目前為止8臺(tái)服務(wù)器大概60個(gè)數(shù)據(jù)庫(kù),目前只用了事務(wù)復(fù)制
          • 常規(guī)管理包含但可能不僅限于:
          •     備份還原
                處理復(fù)制問(wèn)題
                初中級(jí)T-SQL優(yōu)化
                數(shù)據(jù)庫(kù)日常監(jiān)控
          • 一年之內(nèi)逐步讀完這些書(shū)
                  《SQL Server 2008技術(shù)內(nèi)幕:T-SQL語(yǔ)言基礎(chǔ)》
                  《SQL Server 2008技術(shù)內(nèi)幕:T-SQL查詢》
                  《SQL Server 2008企業(yè)級(jí)平臺(tái)管理實(shí)踐》
                  《SQL Server 2008管理員必備指南》
                  《SQL Server 2008查詢性能優(yōu)化》

          最后給大家分享我寫(xiě)的SQL兩件套:《SQL基礎(chǔ)知識(shí)第二版》《SQL高級(jí)知識(shí)第二版》的PDF電子版。里面有各個(gè)語(yǔ)法的解釋、大量的實(shí)例講解和批注等等,非常通俗易懂,方便大家跟著一起來(lái)實(shí)操。


          有需要的讀者可以下載學(xué)習(xí),在下面的公眾號(hào)「數(shù)據(jù)前線」(非本號(hào))后臺(tái)回復(fù)關(guān)鍵字:SQL,就行

          數(shù)據(jù)前線


          后臺(tái)回復(fù)關(guān)鍵字:1024,獲取一份精心整理的技術(shù)干貨

          后臺(tái)回復(fù)關(guān)鍵字:進(jìn)群,帶你進(jìn)入高手如云的交流群

          記得幫忙點(diǎn)「」和「在看」↓

          謝謝啦

          瀏覽 54
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久操伊人网 | 白白日韩在线观看 | 美女交叉免费视频啪啪 | 考逼视频网站免费观看 | 无码不卡在线播放 |