Found out after rescores that I passed this with a decent score, so hopefully it will help!
Note - this is a dump of my notes as they were when I sat the exam, I've just dumped them out of Notion, no update happened after the exam.
There isn't a DP-300 learning path as I write this, I took the detailed skills outline and used my knowledge, plus the MSDocs to fill in my gaps. I always do this before I start revising my weak spots, it becomes my revision plan. It may also be worth searching in MSLearn for SQL while there's no learning path as new content is added and removed - Search learning for SQL
This is a mix of free and paid content, but mostly free, it covers labs, workshops and Microsoft Learn tasks. The section "Main resources outside of Docs" are generic learning sources, they cover one or more of the skills listed below them. Detail for what I think each skill point is referencing is then added with a direct link to something in the Docs or part of the Main resources section.
I didn't watch everything I have listed here video wise, they're listed incase I felt I needed another voice on a topic. My way of studying is to build out the environments and test them. I also used to be a DBA (a long time ago), so some parts of this will be light as I just needed a refresher. Hope it helps!
Reading Material / Workshops
- https://microsoft.github.io/sqlworkshops/ - Workshops written by Microsoft Engineering, awesome content :)
- https://azure.microsoft.com/en-gb/resources/sql-server-azure-virtual-machines/ - SQL Server on Azure VM's - free eBook by Pack
- https://azure.microsoft.com/mediahandler/files/resourcefiles/professional-azure-sql-database-administration/Professional_Azure_SQL_Database_Administration.pdf - Professional Azure SQL Database Administration
- https://docs.microsoft.com/en-gb/learn/paths/work-with-relational-data-in-azure/
Video Courses
- https://www.pluralsight.com/courses/microsoft-azure-implementing-relational-database-solutions
- https://app.pluralsight.com/library/courses/introduction-azure-data-migration-service/table-of-contents
- https://app.pluralsight.com/library/courses/microsoft-azure-optimizing-data-solutions/table-of-contents
- https://app.pluralsight.com/library/courses/microsoft-azure-configuring-encryption-data-rest/table-of-contents
- https://app.pluralsight.com/library/courses/microsoft-azure-databases-access-securing/table-of-contents
- https://app.pluralsight.com/library/courses/microsoft-azure-configuring-encryption-data-rest/table-of-contents
- https://app.pluralsight.com/library/courses/analyzing-sql-server-query-plans/table-of-contents
- https://app.pluralsight.com/library/courses/azure-sql-database-diagnosing-performance-issues-dmvs/table-of-contents
- https://app.pluralsight.com/library/courses/microsoft-azure-optimizing-data-solutions/table-of-contents
- https://app.pluralsight.com/library/courses/managing-azure-sql-server-database-performance/table-of-contents
- https://app.pluralsight.com/library/courses/sql-server-microsoft-administering-availability-groups/table-of-contents
- https://www.udemy.com/course/ms-sql-server-70-764/learn/lecture/8579018#overview - 70-764 Course
- https://www.udemy.com/course/ms-sql-server-70-765/learn/lecture/8579348?start=0#content - 70-765 Course
- https://www.udemy.com/course/professional-azure-sql-database-administration/learn/lecture/11937264#overview - Has good reviews but seems to be reading out the Professional Azure SQL Book from above, word for word?
MSLearn Resources
Provision Azure SQL DB - https://docs.microsoft.com/en-gb/learn/modules/provision-azure-sql-db/
Provision and Elastic Pool - https://docs.microsoft.com/en-gb/learn/modules/scale-sql-databases-elastic-pools/
Provision PostGres - https://docs.microsoft.com/en-gb/learn/modules/create-azure-db-for-postgresql-server/
SQL on Linux - https://docs.microsoft.com/en-gb/learn/modules/deploy-sql-server-linux/
-
deploy database offerings on selected platforms
- https://docs.microsoft.com/en-us/azure/sql-database/sql-database-single-database-get-started
- https://github.com/microsoft/sqlworkshops-azuresqlworkshop/blob/master/azuresqlworkshop/02-DeployAndConfigure.md
- https://docs.microsoft.com/en-us/sql/database-engine/install-windows/install-sql-server-from-the-command-prompt?view=sql-server-ver15
-
configure customized deployment templates
- https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sql/virtual-machines-windows-ps-sql-create
- https://docs.microsoft.com/en-gb/azure/virtual-machines/windows/sql/virtual-machines-windows-portal-sql-server-provision
- https://docs.microsoft.com/en-us/powershell/module/az.compute/set-azvmsourceimage?view=azps-3.8.0
- https://docs.microsoft.com/en-us/sql/database-engine/install-windows/install-sql-server-using-a-configuration-file?view=sql-server-ver15
-
apply patches and updates for hybrid and IaaS deployment
-
evaluate requirements for the deployment
-
evaluate the functional benefits/impact of possible database offerings
- https://docs.microsoft.com/en-us/sql/sql-server/editions-and-components-of-sql-server-version-15?view=sql-server-ver15
- https://docs.microsoft.com/en-us/azure/azure-sql/database/single-database-overview
- https://docs.microsoft.com/en-us/azure/azure-sql/database/elastic-pool-overview
- https://docs.microsoft.com/en-us/azure/azure-sql/managed-instance/sql-managed-instance-paas-overview
-
evaluate the scalability of the possible database offering
-
evaluate the HA/DR of the possible database offering
- sql vm - (Avail group, failover cluster, Log Shipping, Backup & Restore)
-
evaluate the security aspects of the possible database offering
- Security sections of docs listed under funcitonality benefits/offerings
-
configure Azure SQL database/elastic pools for scale and performance
- https://docs.microsoft.com/en-us/azure/sql-database/sql-database-elastic-pool
- https://docs.microsoft.com/en-us/azure/sql-database/sql-database-elastic-pool-manage
- https://docs.microsoft.com/en-us/azure/sql-database/sql-database-performance-guidance
- https://docs.microsoft.com/en-us/azure/azure-sql/database/elastic-pool-scale
-
configure Azure SQL managed instances for scale and performance
-
configure SQL Server in Azure VMs for scale and performance
- https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sql/virtual-machines-windows-sql-performance
- https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sql/virtual-machines-windows-sql-server-storage-configuration
- https://docs.microsoft.com/en-us/azure/virtual-machines/windows/disks-types#disk-size
-
calculate resource requirements
-
evaluate database partitioning techniques, such as database sharding
- https://docs.microsoft.com/en-us/azure/architecture/best-practices/data-partitioning
- https://docs.microsoft.com/en-us/azure/architecture/patterns/sharding
- Used in sharding - https://docs.microsoft.com/en-us/azure/sql-database/elastic-jobs-overview
- https://app.pluralsight.com/library/courses/microsoft-azure-optimizing-data-solutions/table-of-contents
- https://docs.microsoft.com/en-us/azure/sql-database/sql-database-elastic-scale-introduction
Azure SQL Labs - Migration Lab
https://github.com/microsoft/sqlworkshops-azuresqllabs
Learn - Data Migration Assistant
https://docs.microsoft.com/learn/modules/assess-convert-sql-server-databases-using-dma/
Learn - Migrate to Managed Instance
https://docs.microsoft.com/en-gb/learn/modules/migrate-sql-workloads-azure-managed-instances/
Learn - Migrate to SQL Azure VMs
https://docs.microsoft.com/en-gb/learn/modules/migrate-sql-workloads-azure-virtual-machines/
Learn - Migrate Postgres
https://docs.microsoft.com/en-gb/learn/modules/migrate-on-premises-postgresql-databases/
Learn - Migrate MySQL
https://docs.microsoft.com/en-gb/learn/modules/migrate-on-premises-mysql-databases/
Data Migration Service
https://docs.microsoft.com/en-gb/azure/dms/
-
evaluate requirements for the migration
-
evaluate offline or online migration strategies
-
evaluate requirements for the upgrade
-
evaluate offline or online upgrade strategies
MS Learn
-
https://docs.microsoft.com/en-gb/learn/paths/migrate-sql-workloads-azure/
-
https://docs.microsoft.com/en-gb/learn/paths/sql-server-2017-upgrades/
-
implement an online migration strategy
-
implement an offline migration strategy
-
implement an online upgrade strategy
-
implement an offline upgrade strategy
MSLearn
https://docs.microsoft.com/en-gb/learn/modules/secure-your-azure-sql-database/
- https://docs.microsoft.com/en-us/azure/sql-database/sql-database-security-overview
- https://app.pluralsight.com/library/courses/microsoft-ignite-session-45/transcript - Whats new in SQL Security
-
configure Azure AD authentication
-
create users from Azure AD identities
-
configure security principals
- configure database and object-level permissions using graphical tools
- apply principle of least privilege for all securables https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/database-level-roles?view=sql-server-ver15
-
implement Transparent Data Encryption (TDE)
- https://docs.microsoft.com/en-us/azure/sql-database/transparent-data-encryption-azure-sql?tabs=azure-portal
- https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sql/virtual-machines-windows-ps-sql-keyvault
- https://docs.microsoft.com/en-us/sql/relational-databases/security/encryption/move-a-tde-protected-database-to-another-sql-server?view=sql-server-ver15
-
implement object-level encryption
-
implement Dynamic Data Masking
-
implement Azure Key Vault and disk encryption for Azure VMs
-
configure SQL DB and database-level firewall rules
https://docs.microsoft.com/en-us/azure/sql-database/sql-database-firewall-configure
-
implement Always Encrypted
- https://docs.microsoft.com/en-us/sql/relational-databases/security/encryption/always-encrypted-database-engine?view=sql-server-ver15
- https://docs.microsoft.com/en-us/azure/azure-sql/database/always-encrypted-certificate-store-configure?view=sql-server-ver15
- https://docs.microsoft.com/en-us/azure/azure-sql/database/always-encrypted-azure-key-vault-configure?view=sql-server-ver15&tabs=azure-powershell
-
configure Azure Data Gateway
-
apply a data classification strategy
-
configure server and database audits
-
implement data change tracking
-
perform vulnerability assessment
https://docs.microsoft.com/en-us/azure/sql-database/sql-database-monitoring-tuning-index
-
prepare an operational performance baseline
-
determine sources for performance metrics
-
interpret performance metrics
-
assess database performance by using Azure SQL Database Intelligent Performance
-
configure and monitor activity and performance at the infrastructure, server, service, and database levels
-
https://docs.microsoft.com/en-us/azure/azure-monitor/insights/sql-assessment
-
implement index maintenance tasks
-
implement statistics maintenance tasks
-
configure database auto-tuning
-
automate database maintenance tasks
- SQL Agent Jobs: https://docs.microsoft.com/en-us/azure/sql-database/sql-database-job-automation-overview#sql-agent-jobs
- Azure Automation: https://azure.microsoft.com/en-us/blog/azure-automation-your-sql-agent-in-the-cloud/
- SQL Server Agent Jobs: https://docs.microsoft.com/en-us/sql/ssms/agent/create-a-job
-
manage storage capacity
- https://docs.microsoft.com/en-us/azure/sql-database/sql-database-file-space-management
- https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/performance-guidelines-best-practices#disks-guidance
- https://docs.microsoft.com/en-us/sql/relational-databases/databases/sql-server-data-files-in-microsoft-azure?view=sql-server-ver15
MSLearn
https://docs.microsoft.com/en-gb/learn/modules/automatically-tune-sql-server-linux/
- the github repo doesn't exist, cloned gitmemory version to https://github.com/stevensnicole/automatically-tune-sql-server-linux
https://docs.microsoft.com/en-gb/learn/modules/use-sql-server-query-tuning-assistant/
-
configure Query Store to collect performance data
-
identify sessions that cause blocking
-
assess growth/fragmentation of databases and logs
-
assess performance-related database configuration parameters
- including AutoClose, AutoShrink, AutoGrowth
-
configure storage and infrastructure resources
- https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/storage-configuration
- https://docs.microsoft.com/en-gb/learn/modules/migrate-sql-workloads-azure-virtual-machines/2-considerations-sql-server
- https://docs.microsoft.com/en-us/sql/relational-databases/databases/sql-server-data-files-in-microsoft-azure?view=sql-server-ver15
- optimize IOPS, throughput, and latency
- optimize tempdb performance
- optimize data and log files for performance
- configure server and service account settings for performance
- configure Resource Governor for performance
- implement database-scoped configuration
- configure compute resources for scaling
- Smells like SQL Scale Set, ugh in prod?? or..
- https://docs.microsoft.com/en-us/azure/azure-sql/database/serverless-tier-overview
- configure Intelligent Query Processing (IQP)
- manage schedules for regular maintenance jobs
- configure multi-server automation
- configure notifications for task success/failure/non-completion
- https://docs.microsoft.com/en-us/sql/ssms/agent/create-a-sql-server-agent-proxy?view=sql-server-ver15
- https://docs.microsoft.com/en-us/sql/ssms/agent/create-a-sql-server-agent-proxy?view=sql-server-ver15
- https://docs.microsoft.com/en-us/sql/ssms/agent/create-an-operator?view=sql-server-ver15#TsqlProcedure
-
create event notifications based on metrics
-
create event notifications for Azure resources
-
create alerts for server configuration changes
-
create tasks that respond to event notifications
-
perform automated deployment methods for resources
- https://docs.microsoft.com/en-us/azure/azure-sql/database/arm-templates-content-guide?tabs=single-database
- https://github.com/Azure/azure-quickstart-templates/tree/master/101-sql-elastic-pool-create
- https://github.com/Azure/azure-quickstart-templates/tree/master/101-sql-logical-server
- https://github.com/Azure/azure-quickstart-templates/tree/master/101-sql-vm-new-storage
-
automate Backups
-
automate performance tuning and patching
-
implement policies by using automated evaluation modes
- Azure Policy?
- recommend HADR strategy based on RPO/RTO requirements
- evaluate HADR for hybrid deployments
- evaluate Azure-specific HADR solutions
- identify resources for HADR solutions
test HA by using failover
https://docs.microsoft.com/en-us/azure/azure-sql/database/move-resources-across-regions
test DR by using failover or restore
https://docs.microsoft.com/learn/modules/backup-restore-azure-sql/
-
perform a database backup with options
-
perform a database restore with options
- https://docs.microsoft.com/en-us/azure/azure-sql/managed-instance/restore-sample-database-quickstart
- https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/restore-a-transaction-log-backup-sql-server
- https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/tail-log-backups-sql-server
-
perform a database restore to a point in time
-
configure long-term backup retention
- configure replication
- https://docs.microsoft.com/en-us/azure/sql-database/sql-database-active-geo-replication
- https://docs.microsoft.com/en-us/azure/sql-database/scripts/sql-database-setup-geodr-and-failover-database-powershell
- https://docs.microsoft.com/en-us/azure/azure-sql/managed-instance/replication-transactional-overview
- https://docs.microsoft.com/en-us/azure/azure-sql/managed-instance/replication-between-two-instances-configure-tutorial
- configure Azure Site Recovery for a database offering
-
create an Availability Group
- https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/overview-of-always-on-availability-groups-sql-server?view=sql-server-ver15
- https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/creation-and-configuration-of-availability-groups-sql-server?view=sql-server-ver15
-
integrate a database into an Availability Group
-
configure quorum options for a Windows Server Failover Cluster
- https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/create-or-configure-an-availability-group-listener-sql-server?view=sql-server-ver15
- https://docs.microsoft.com/en-us/windows-server/failover-clustering/manage-cluster-quorum
- https://docs.microsoft.com/en-us/windows-server/storage/storage-spaces/understand-quorum
-
configure an Availability Group listener
-
evaluate database health using DMVs
-
evaluate server health using DMVs
- https://docs.microsoft.com/en-us/sql/relational-databases/extended-events/use-the-system-health-session?view=sql-server-ver15
- https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-os-wait-stats-transact-sql?view=sql-server-ver15
- https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-exec-session-wait-stats-transact-sql?view=sql-server-ver15
- https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-server-diagnostics-transact-sql?view=sql-server-ver15
-
perform database consistency checks by using DBCC
- assess proper database autogrowth configuration
- report on database free space
- review database configuration options
- prepare databases for AlwaysOn Availability Groups
- perform transaction log backup
- perform restore of user databases
- perform database backups with options
- https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/restore-a-sql-server-database-to-a-point-in-time-full-recovery-model?view=sql-server-ver15
- https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/restore-files-to-a-new-location-sql-server?view=sql-server-ver15
- manage security principals
- configure permissions for users to access database objects
- configure permissions by using custom roles
- determine the appropriate type of execution plan
- live Query Statistics, Actual Execution Plan, Estimated Execution Plan, Showplan
- https://docs.microsoft.com/en-us/sql/relational-databases/performance/display-and-save-execution-plans?view=sql-server-ver15
- https://docs.microsoft.com/en-us/sql/relational-databases/performance/display-the-estimated-execution-plan?view=sql-server-ver15
- https://docs.microsoft.com/en-us/sql/relational-databases/performance/display-an-actual-execution-plan?view=sql-server-ver15
- live Query Statistics, Actual Execution Plan, Estimated Execution Plan, Showplan
- identify problem areas in execution plans
- extract query plans from the Query Store
- determine the appropriate Dynamic Management Views (DMVs) to gather query performance information
- identify performance issues using DMVs
- identify and implement index changes for queries
- recommend query construct modifications based on resource usage
- assess the use of hints for query performance
- identify data quality issues with duplication of data
- identify normal form of database
- assess index design for performance
- validate data types defined for columns
- recommend table and index storage including filegroups
- evaluate table partitioning strategy
- evaluate the use of compression for tables and indexes