SQL Server DBA三十問
SQL Server DBA三十問
很多開發(fā)人員都想成為一名DBA,也有很多人一開始就把自己定位成為一名DBA,DBA究竟需要掌握些什么知識和技能呢?以下是我做DBA工作和面試DBA時(shí),整理的一些DBA方面的三十個問題,三十個大問題中還有許多小的問題,涵括了SQLServer DBA比較多的技術(shù)知識點(diǎn),與大家分享下,希望給有志做DBA的朋友們一些幫助:
1、char、varchar、nvarchar之間的區(qū)別(包括用途和空間占用);xml類型查找某個節(jié)點(diǎn)的數(shù)據(jù)有哪些方法,哪個效率高;使用存儲過程和使用T-SQL查詢數(shù)據(jù)有啥不一樣;
2、系統(tǒng)DB有哪些,都有什么作用,需不需要做備份,為什么;損壞了如何做還原(主要是master庫);
3、有哪些操作會使用到TempDB;如果TempDB異常變大,可能的原因是什么,該如何處理;
4、Index有哪些類型,它們的區(qū)別和實(shí)現(xiàn)原理是什么,索引有啥優(yōu)點(diǎn)和缺點(diǎn);如何為SQL語句創(chuàng)建合適的索引,索引創(chuàng)建時(shí)有哪些需要注意的項(xiàng),如何查看你創(chuàng)建的索引是否被使用;如何維護(hù)索引;索引損壞如何檢查,怎么修復(fù);T-SQL有更好的索引存在,但是運(yùn)行時(shí)并沒有使用該索引,原因可能是什么;
5、視圖上我們能建索引嗎,如果能建的話,會啥好處和壞處;視圖上建索引和表上建索引有啥區(qū)別;
6、Job信息我們可以通過哪些表獲取;系統(tǒng)正在運(yùn)行的語句可以通過哪些視圖獲取;如何獲取某個T-SQL語句的IO、Time等信息;
7、在線系統(tǒng),一個表有五千萬記錄,現(xiàn)在要你將其中的兩千萬條記錄導(dǎo)入到另一臺服務(wù)器的某個表中,導(dǎo)完后,需要將這兩千萬數(shù)據(jù)刪除,你預(yù)備如何處理,優(yōu)缺點(diǎn)是什么;
8、數(shù)據(jù)庫服務(wù)器報(bào)磁盤空間不足,你將如何應(yīng)對,要求盡快恢復(fù);
9、臨時(shí)表、表變量、CTE(公用表表達(dá)式)有啥區(qū)別和聯(lián)系,保存位置有啥不一樣,使用時(shí)如何決定選哪種;
10、SQLServer有哪些隔離級別,默認(rèn)級別是哪個;數(shù)據(jù)庫有哪些主要的鎖類型;行版本控制是如何實(shí)現(xiàn)的;
11、死鎖如何跟蹤;阻塞如何跟蹤和查找;發(fā)現(xiàn)有問題的語句后,如何進(jìn)行處理;用Profile做跟蹤時(shí),一般我們需要跟蹤哪些事件;
12、Windows日志主要有哪幾種,SQLServer日志一般保留幾個,什么情況下會產(chǎn)生新的SQL日志;數(shù)據(jù)庫日志恢復(fù)模式有哪幾種,區(qū)別是什么;數(shù)據(jù)庫日志突然變得很大,而且你無法收縮,可能的原因是什么,怎么查找原因,分別將如何處理;
13、分區(qū)表和分區(qū)視圖是什么概念,一般是在什么情況下使用,有啥好處;
14、如何比較兩個同結(jié)構(gòu)的表數(shù)據(jù)的差異;如果表損壞了,如何修復(fù);如何在備份文件有問題的情況下盡量還原數(shù)據(jù);如何將一個表的Identity屬性歸零;
15、CheckPoint和LazyWriter區(qū)別;DDL Trigger 和 DML Trigger有啥用,區(qū)別是啥;
16、Mirroring 和Logshipping 的區(qū)別和使用場景;SQLServer的Mirroring與Oracle的哪像技術(shù)比較接近,它們的區(qū)別是啥;
17、Mirroring的搭建步驟,Mirroring三種模式區(qū)別,Mirroring 中同步和異步的原理和要求,搭建了Mirroring后,需要對數(shù)據(jù)庫日志做什么處理;
18、Replication配置和使用場景;Replication有哪幾種模式;PUSH和PULL有啥區(qū)別;搭建Replication后會產(chǎn)生一個什么庫;報(bào)錯時(shí)用什么來查看報(bào)錯的具體語句,清理掉某個庫的Replication使用什么語句,查看同步鏈信息主要通過哪些表;
19、Replication發(fā)布端的表能truncate嗎,為什么;Replication Identity列如何處理、缺失字段錯誤如何處理、主鍵沖突錯誤如何處理、如何跳過指定的錯誤、訂閱端表被刪除了如何處理、大規(guī)模改動數(shù)據(jù)如何處理;某條同步鏈因?yàn)槠渲械哪硞€表一次性改動數(shù)據(jù)很大造成同步鏈的嚴(yán)重延時(shí),要求盡快恢復(fù)同步鏈,如何處理。
20、SSB(Service Broker)使用場景,如何創(chuàng)建,都會創(chuàng)建些什么對象,有啥優(yōu)缺點(diǎn),主要通過什么方式實(shí)現(xiàn)不同服務(wù)器之間的消息傳遞;可以通過哪些方式排錯;
21、跟蹤數(shù)據(jù)庫數(shù)據(jù)的變更有哪些方法,它們(CDC(Change Data Capture)、CT(Change Tracking)、Trigger等)使用上的優(yōu)缺點(diǎn);
22、SQL調(diào)優(yōu)步驟,如何來判斷SQL語句存在問題,怎么定位問題,如何解決這些問題;
23、數(shù)據(jù)庫故障排查步驟,如何處理緊急數(shù)據(jù)庫問題;
24、如何考慮和制定數(shù)據(jù)庫備份計(jì)劃;公司要求對一個非常大的數(shù)據(jù)庫或者表做備份,而且要求數(shù)據(jù)量盡可能少丟失,你可能會采用什么方法;
25、如果要你做數(shù)據(jù)庫監(jiān)控,你會關(guān)注那些指標(biāo)(包括SQLServer和Windows),如何制定性能基線,你使用過哪些監(jiān)控軟件;
26、數(shù)據(jù)庫遷移步驟;重建一套比較大的測試系統(tǒng)(最少10個數(shù)據(jù)庫實(shí)例),如果原來DB數(shù)據(jù)量都不大,但DB比較多,新搭建的系統(tǒng)數(shù)據(jù)都不需要,如何快速實(shí)現(xiàn);
27、創(chuàng)建Cluster 簡要步驟,最少需要幾個IP,需要安裝些什么服務(wù),需要哪些固定的磁盤,Raid如何設(shè)置,磁盤如何劃分;SQLServerCluster與Mysql Cluster 和 Oracle RAC的區(qū)別等;
28、如果遇到一個性能不理想、代碼復(fù)雜的存儲過程,很難通過數(shù)據(jù)庫方面的調(diào)優(yōu)來解決問題,你如何說服開發(fā)人員修改它(可能開發(fā)人員并不愿意修改);
29、你有沒有遇到過因?yàn)槟愕恼`操作造成系統(tǒng)故障發(fā)生的情況,你當(dāng)時(shí)是如何處理的;如果沒有,假定你誤刪了一個重要的表,你該如何處理;
30、你準(zhǔn)備成為一名什么樣的DBA,為此你將如何準(zhǔn)備(或者你有怎樣的職業(yè)規(guī)劃,準(zhǔn)備怎樣度過你的DBA生涯);如果你進(jìn)入公司,你最想獲得的是什么。
很多開發(fā)人員都想成為一名DBA,也有很多人一開始就把自己定位成為一名DBA,DBA究竟需要掌握些什么知識和技能呢?以下是我做DBA工作和面試DBA時(shí),整理的一些DBA方面的三十個問題,三十個大問題中還有許多小的問題,涵括了SQLServer DBA比較多的技術(shù)知識點(diǎn),與大家分享下,希望給有志做DBA的朋友們一些幫助:
1、char、varchar、nvarchar之間的區(qū)別(包括用途和空間占用);xml類型查找某個節(jié)點(diǎn)的數(shù)據(jù)有哪些方法,哪個效率高;使用存儲過程和使用T-SQL查詢數(shù)據(jù)有啥不一樣;
2、系統(tǒng)DB有哪些,都有什么作用,需不需要做備份,為什么;損壞了如何做還原(主要是master庫);
3、有哪些操作會使用到TempDB;如果TempDB異常變大,可能的原因是什么,該如何處理;
4、Index有哪些類型,它們的區(qū)別和實(shí)現(xiàn)原理是什么,索引有啥優(yōu)點(diǎn)和缺點(diǎn);如何為SQL語句創(chuàng)建合適的索引,索引創(chuàng)建時(shí)有哪些需要注意的項(xiàng),如何查看你創(chuàng)建的索引是否被使用;如何維護(hù)索引;索引損壞如何檢查,怎么修復(fù);T-SQL有更好的索引存在,但是運(yùn)行時(shí)并沒有使用該索引,原因可能是什么;
5、視圖上我們能建索引嗎,如果能建的話,會啥好處和壞處;視圖上建索引和表上建索引有啥區(qū)別;
6、Job信息我們可以通過哪些表獲取;系統(tǒng)正在運(yùn)行的語句可以通過哪些視圖獲取;如何獲取某個T-SQL語句的IO、Time等信息;
7、在線系統(tǒng),一個表有五千萬記錄,現(xiàn)在要你將其中的兩千萬條記錄導(dǎo)入到另一臺服務(wù)器的某個表中,導(dǎo)完后,需要將這兩千萬數(shù)據(jù)刪除,你預(yù)備如何處理,優(yōu)缺點(diǎn)是什么;
8、數(shù)據(jù)庫服務(wù)器報(bào)磁盤空間不足,你將如何應(yīng)對,要求盡快恢復(fù);
9、臨時(shí)表、表變量、CTE(公用表表達(dá)式)有啥區(qū)別和聯(lián)系,保存位置有啥不一樣,使用時(shí)如何決定選哪種;
10、SQLServer有哪些隔離級別,默認(rèn)級別是哪個;數(shù)據(jù)庫有哪些主要的鎖類型;行版本控制是如何實(shí)現(xiàn)的;
11、死鎖如何跟蹤;阻塞如何跟蹤和查找;發(fā)現(xiàn)有問題的語句后,如何進(jìn)行處理;用Profile做跟蹤時(shí),一般我們需要跟蹤哪些事件;
12、Windows日志主要有哪幾種,SQLServer日志一般保留幾個,什么情況下會產(chǎn)生新的SQL日志;數(shù)據(jù)庫日志恢復(fù)模式有哪幾種,區(qū)別是什么;數(shù)據(jù)庫日志突然變得很大,而且你無法收縮,可能的原因是什么,怎么查找原因,分別將如何處理;
13、分區(qū)表和分區(qū)視圖是什么概念,一般是在什么情況下使用,有啥好處;
14、如何比較兩個同結(jié)構(gòu)的表數(shù)據(jù)的差異;如果表損壞了,如何修復(fù);如何在備份文件有問題的情況下盡量還原數(shù)據(jù);如何將一個表的Identity屬性歸零;
15、CheckPoint和LazyWriter區(qū)別;DDL Trigger 和 DML Trigger有啥用,區(qū)別是啥;
16、Mirroring 和Logshipping 的區(qū)別和使用場景;SQLServer的Mirroring與Oracle的哪像技術(shù)比較接近,它們的區(qū)別是啥;
17、Mirroring的搭建步驟,Mirroring三種模式區(qū)別,Mirroring 中同步和異步的原理和要求,搭建了Mirroring后,需要對數(shù)據(jù)庫日志做什么處理;
18、Replication配置和使用場景;Replication有哪幾種模式;PUSH和PULL有啥區(qū)別;搭建Replication后會產(chǎn)生一個什么庫;報(bào)錯時(shí)用什么來查看報(bào)錯的具體語句,清理掉某個庫的Replication使用什么語句,查看同步鏈信息主要通過哪些表;
19、Replication發(fā)布端的表能truncate嗎,為什么;Replication Identity列如何處理、缺失字段錯誤如何處理、主鍵沖突錯誤如何處理、如何跳過指定的錯誤、訂閱端表被刪除了如何處理、大規(guī)模改動數(shù)據(jù)如何處理;某條同步鏈因?yàn)槠渲械哪硞€表一次性改動數(shù)據(jù)很大造成同步鏈的嚴(yán)重延時(shí),要求盡快恢復(fù)同步鏈,如何處理。
20、SSB(Service Broker)使用場景,如何創(chuàng)建,都會創(chuàng)建些什么對象,有啥優(yōu)缺點(diǎn),主要通過什么方式實(shí)現(xiàn)不同服務(wù)器之間的消息傳遞;可以通過哪些方式排錯;
21、跟蹤數(shù)據(jù)庫數(shù)據(jù)的變更有哪些方法,它們(CDC(Change Data Capture)、CT(Change Tracking)、Trigger等)使用上的優(yōu)缺點(diǎn);
22、SQL調(diào)優(yōu)步驟,如何來判斷SQL語句存在問題,怎么定位問題,如何解決這些問題;
23、數(shù)據(jù)庫故障排查步驟,如何處理緊急數(shù)據(jù)庫問題;
24、如何考慮和制定數(shù)據(jù)庫備份計(jì)劃;公司要求對一個非常大的數(shù)據(jù)庫或者表做備份,而且要求數(shù)據(jù)量盡可能少丟失,你可能會采用什么方法;
25、如果要你做數(shù)據(jù)庫監(jiān)控,你會關(guān)注那些指標(biāo)(包括SQLServer和Windows),如何制定性能基線,你使用過哪些監(jiān)控軟件;
26、數(shù)據(jù)庫遷移步驟;重建一套比較大的測試系統(tǒng)(最少10個數(shù)據(jù)庫實(shí)例),如果原來DB數(shù)據(jù)量都不大,但DB比較多,新搭建的系統(tǒng)數(shù)據(jù)都不需要,如何快速實(shí)現(xiàn);
27、創(chuàng)建Cluster 簡要步驟,最少需要幾個IP,需要安裝些什么服務(wù),需要哪些固定的磁盤,Raid如何設(shè)置,磁盤如何劃分;SQLServerCluster與Mysql Cluster 和 Oracle RAC的區(qū)別等;
28、如果遇到一個性能不理想、代碼復(fù)雜的存儲過程,很難通過數(shù)據(jù)庫方面的調(diào)優(yōu)來解決問題,你如何說服開發(fā)人員修改它(可能開發(fā)人員并不愿意修改);
29、你有沒有遇到過因?yàn)槟愕恼`操作造成系統(tǒng)故障發(fā)生的情況,你當(dāng)時(shí)是如何處理的;如果沒有,假定你誤刪了一個重要的表,你該如何處理;
30、你準(zhǔn)備成為一名什么樣的DBA,為此你將如何準(zhǔn)備(或者你有怎樣的職業(yè)規(guī)劃,準(zhǔn)備怎樣度過你的DBA生涯);如果你進(jìn)入公司,你最想獲得的是什么。
posted on 2011-10-31 15:27 順其自然EVO 閱讀(397) 評論(0) 編輯 收藏 所屬分類: 數(shù)據(jù)庫