# SQL Server skill
###### tags: `SQL Server` `Microsoft` `SQL` `Data Warehouse` ` Learning`
## SQL Server安裝
| Sn | Type | 技能 |
| -- | -------- | -------- |
| 1 | Stand-alone | SQL Server - Database Engine only |
| 2 | Tools | SQL Server Management Studio|
| 3 | Stand-alone | SQL Server - Database Engine, SSIS, SSRS, SSAS |
| 4 | Stand-alone | SQL Server - R, Python |
| 5 | FCI | SQL Server Failover Cluster Instance |
## SQL Server服務管理
| Sn | Type | 技能 |
| -- | -------- | -------- |
| 1 | Process | Start and stop SQL Server and SQL Server Agent service |
| 2 | Protocol | Enable or Disable TCP\IP |
| 3 | Port | Change listen port from 1433 to 14330 |
## 資料庫管理與開發
| Sn | Type | Ojbect |技能 |
| -- | -------- | -------- | -------- |
| 1 | Developer | Database | Create a TESTDB1 DB and TESTDB2 DB on specific drive with multi-data file using SSMS GUI and T-SQL, |
| 2 | Management | Database | Backup and restore database using SSMS GUI and T-SQL|
| 3 | Management | Database | Restore a sample database(AdventureWorks) using SSMS GUI|
| 4 | Management | Database | Backup database regularly using Maintainance plan |
| 5 | Management | Database | 了解 Database Recovery Models 與 備份類型 |
| 6 | Management | Database | 最佳實務備份設定 using Maintainance plan |
| 7 | Management | Database | 查看所有資料庫清單與空間使用(UI or TSQL) |
| 8 | Management | Database | Increase or reduce database file size( mdf,ndf,ldf) |
| 9 | Management | Database | Move tempdb to different locaiton |
| 10 | Developer | Table | create a table on TESTDB1 |
| 11 | Developer | Table | 了解File Group |
| 12 | Developer | Table | create a table on different File group in TESTDB2 |
| 13 | Management | Table | 如何查看所有資料表(Tableu)清單與空間使用(UI or TSQL)|
| 14 | Developer | View | create a view on TESTDB1 |
| 15 | Management | View | 如何查看所有檢視(view)清單(UI or TSQL)|
| 16 | Developer | Procedure | Create a stored procedure on TESTDB1 |
| 17 | Developer | Procedure | create a stored procedure with parameter TESTDB1|
| 18 | Management | Procedure | 如何查看所有預存程序(stored procedure)清單(UI or TSQL)|
| 19 | security | Login | 了解Logins and Roles|
| 20 | security | Login | create a login1 資料庫最大權限 on TESTDB1 |
| 21 | security | Login | create a login3 只能SELECT一個table或view on TESTDB1 |
| 22 | security | Login | create a login4 只能執行一個SP on TESTDB1 |
| 23 | Management | Login | 如何查看所有登入帳號(login)清單(UI or TSQL) |
| 24 | Management | Login | 了解 Login and User and Permission UI/DMV |
| 25 | Developer | Job | Create a job for run a stored procedure regularly |
| 26 | Developer | Job | 如何查看所有作業(Job)清單(UI or TSQL) |
| 27 | Management | Job | Monitor Job status (Job activity, job history or TSQL) |
| 28 | Management | Job | 了解與設定Database Mail、SQL Agent Alert system、操作員 Operator 與 警示 Alert|
| 29 | Management | Job | configiure email notification when job finish on Job1 |
| 30 | Management | Job | how to start/stop/disable/enable a Job with SSMS GUI or TSQL |
| 31 | Data | SSIS | Import a csv/xlsx to Table, Export table to csv using Import and Export Wizard |
| 32 | Data | Job/SSIS | Schedule and execute a SSIS Package to import csv to Table |
| 33 | Data | Linked Server | Linked Server 用途、建議、與設定方法 |
| 34 | Data | Linked Server | create a linked server to another SQL Server(sqlserver2) and query data on SQL2 from Linked server |
| 35 | Data | Linked Server | create a linked server to another SQL Server(sqlserver2) and query data on SQL2 from Linked server |
| 36 | Developer | Procedure | how to send a mail(Database Mail) with TSQL |
## Monitor and Troubleshooting
| Sn | name |
| -------- | -------- |
| 1 | 無法連線與基本連線問題疑難排解 Service/Port/netstat/pid/activity monitor/sp_who/sp_who2/DMV/kill/rollback/dbcc checkdb |
| 2 | 如何查詢當下用戶端連線狀態(user session) with SSMS GUI/TSQL |
| 3 | 如何使用Standard dashboard |
| 4 | 如何查詢SQL Server ERRORLOG |
| 5 | 如何設置Data Collection |
| 6 | SQL Server Trace |
| 7 | SQL Server Extended Event |
## SQL Server觀念
| Sn | name |
| -------- | -------- |
| 1 | 能夠說明資料庫的2種實體檔案的類型與作用 |
| 2 | 能夠說明資料庫復原模型的差異 |
| 3 | 能夠說明資料庫相容性層級用途 |
## Tools
| Sn | name |
| -------- | -------- |
| 1 | SQL Server Profiler |
| 2 | Database Engine Tuning Advisor |
| 3 | SQL Server Migration Assistant (SSMA) |
| 4 | SQL Server Upgrade Advisor and Data Migration Assistant (DMA) |
## 商務持續性與資料庫復原(高可用性)設定
| Sn | Type | 技能 |
| -- | -------- | -------- |
| 1 | availability group | 教學課程:在 Azure 虛擬機器上的 SQL Server 上建立可用性群組 https://docs.microsoft.com/zh-tw/azure/azure-sql/virtual-machines/windows/availability-group-manually-configure-prerequisites-tutorial |
| 2 | FCI | AlwaysOn 容錯移轉叢集執行個體 (SQL Server) https://docs.microsoft.com/zh-tw/sql/sql-server/failover-clusters/windows/always-on-failover-cluster-instances-sql-server?view=sql-server-ver15 PS.SQL Server安裝的第5項 |
| 3 | Database Mirroring | 資料庫鏡像 (SQL Server) https://docs.microsoft.com/zh-tw/sql/database-engine/database-mirroring/database-mirroring-sql-server?view=sql-server-ver15 |
| 4 | Log Shipping | 關於記錄傳送 (SQL Server) https://docs.microsoft.com/zh-tw/sql/database-engine/log-shipping/about-log-shipping-sql-server?view=sql-server-ver15 |
| 5 | Replication | SQL Server 複寫 https://docs.microsoft.com/zh-tw/sql/relational-databases/replication/sql-server-replication?view=sql-server-ver15 |
## 其他
SQL Server Reporting service install and configure and design a report using report builder and publish to Report server (60分鐘)
Performance analysis: PSSDIAG and sqlnexus (cpu, memory bottleneck)
Other Features
1.Audit
2.Policy
3.Data Collection
4.Polybase
Advanced service
1.SSIS developer
2.SSRS
3.SSAS
4.R
5.Python
Performance
1.Index (Row-base stored Index, Columnstored index) 建立移除與分析,儲存大小
2.Performance counter
資料倉儲與整合初階開發 SSIS
| Sn | name |
| -------- | -------- |
| 1 | Foreach Loop Container |
| 2 | File System Task |
| 3 | Execute SQL Task |
| 4 | Data Flow Task - Flat File Source |
| 5 | Data Flow Task - Derived Column |
| 6 | Data Flow Task - OLE DB Source |
| 7 | Data Flow Task - OLE DB Destination |
| 8 | Data Flow Task - Data Conversion |
| 9 | Precedence Constraint Editor |
| 10 | Connection Managers |
| 11 | Expression |
| 12 | Error Handle |
| 13 | 版控 |
| 14 | Package Configurations |
SQL Server開發人員(基礎)
| Sn | Type | Ojbect |技能 |
| -- | -------- | -------- | -------- |
| 1 | Management | Database | restore a sample database AdventureWorks using SSMS GUI|
| 2 | Management | Database | create a database TESTDB1 using SSMS GUI and T-SQL |
| 3 | Management | Database | create a database TESTDB2 on specific drive with multi-data file using SSMS GUI and T-SQL |
| 4 | Management | Database | Backup and restore database with SSMS GUI and T-SQL |
| 5 | Developer | Table | create a table on TESTDB1 |
| 6 | Developer | Table | create a table on different File group in TESTDB2 |
| 7 | Developer | View | create a view on TESTDB1 |
| 8 | Developer | Procedure | Create a stored procedure on TESTDB2 |
| 9 | Developer | Procedure | create a stored procedure with parameter TESTDB2|
| 10 | security | Login | create a login1 資料庫最大權限 on TESTDB1 |
| 11 | security | Login | create a login3 只能SELECT一個table或view on TESTDB2 |
| 12 | security | Login | create a login4 只能執行一個SP on TESTDB2 |
| 13 | Developer | Job | create a Job1, execute a sql script for insert data from table1 to table2, and configure a schedule run on every day |
| 14 | Management | Job | how to start/stop/disable/enable a Job with SSMS GUI or TSQL |
| 15 | Management | Job | how to how to view job history with SSMS GUI or TSQL|
| 16 | Data | SSIS | Import a csv to Table, Export table to csv using Import and Export Wizard |
| 17 | Data | Job/SSIS | Schedule and execute a SSIS Package to import csv to Table |