Implementing Tables and Views
Create and alter tables.
This objective may include but is not limited to: computed and persisted columns; schemas; scripts to deploy changes to multiple environments, for example, dev, test, production; manage permissions (GRANT, DENY, REVOKE)
Create and alter views.
This objective may include but is not limited to: WITH ENCRYPTION; WITH SCHEMABINDING; WITH CHECK OPTION; manage permissions (GRANT, DENY, REVOKE)
Create and alter indexes.
This objective may include but is not limited to: filtered, included columns, unique, clustered, non-clustered, FILL FACTOR; CREATE STATISTICS; indexing views
Create and modify constraints.
This objective may include but is not limited to: PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK, cascading referential integrity, enabling/disabling, NOCHECK; SET IDENTITY_INSERT
Implement data types.
This objective may include but is not limited to: FILESTREAM; spatial, structured, and semi-structured; collations
Implement partitioning solutions.
This objective may include but is not limited to: partitioned tables and indexes (constraints, partition functions, partition schemes, MERGE, SPLIT, SWITCH); distributed partitioned views (constraints, linked servers)
Implementing Programming Objects
Create and alter stored procedures.
This objective may include but is not limited to: table-valued parameters (TVPs), EXECUTE AS, RECOMPILE, parameter direction (output); WITH ENCRYPTION; manage permissions (GRANT, DENY, REVOKE)
Create and alter user-defined functions (UDFs).
This objective may include but is not limited to: WITH SCHEMABINDING, EXECUTE AS; manage permissions (GRANT, DENY, REVOKE)
Create and alter DML triggers.
This objective may include but is not limited to: INSERTED, DELETED, INSTEAD OF, EXECUTE AS
Create and alter DDL triggers.
This objective may include but is not limited to: enabling/disabling; return event data
Create and deploy CLR-based objects.
This objective may include but is not limited to: permission sets (SAFE, UNSAFE, EXTERNAL_ACCESS), SET TRUSTWORTHY
Implement error handling.
This objective may include but is not limited to: TRY/CATCH, RAISERROR, retrieving error information, custom error messages, @@ERROR
Manage transactions.
This objective may include but is not limited to: BEGIN TRANSACTION, COMMIT, ROLLBACK, SET TRANSACTION ISOLATION LEVEL
Working with Query Fundamentals
Query data by using SELECT statements.
This objective may include but is not limited to: LIKE, WHERE, ORDER BY, INTO
Modify data by using INSERT, UPDATE, and DELETE statements.
This objective may include but is not limited to: row constructors, DELETE FROM FROM, UPDATE FROM, TRUNCATE TABLE
Return data by using the OUTPUT clause.
This objective may include but is not limited to: INSERTED, DELETED, INTO
Modify data by using MERGE statements.
This objective may include but is not limited to: INSERTED, DELETED, OUTPUT
Implement aggregate queries.
This objective may include but is not limited to: built-in aggregate functions, GROUPING SETS, GROUP BY, HAVING
Combine datasets.
This objective may include but is not limited to: CROSS APPLY, OUTER APPLY, all join types; UNION, UNION ALL, INTERSECT, EXCEPT
Apply built-in scalar functions.
This objective may include but is not limited to: CAST and CONVERT; REPLACE; LEN and DATALENGTH; PATINDEX and CHARINDEX
Applying Additional Query Techniques
Implement subqueries.
This objective may include but is not limited to: simple, correlated, scalar, list, table valued
Implement CTE (common table expression) queries.
This objective may include but is not limited to: recursive, non-recursive
Apply ranking functions.
This objective may include but is not limited to: RANK, PARTITION BY, DENSE_RANK, OVER, ROW_NUMBER, NTILE
Control execution plans.
This objective may include but is not limited to: table hints, query hints
Manage international considerations.
This objective may include but is not limited to: collations, defining custom errors, filtering data, sort order, nvarchar, database collation, column collation
Working with Additional SQL Server Components
Integrate Database Mail.
Implement full-text search.
This objective may include but is not limited to: CONTAINS, CONTAINSTABLE, FREETEXT, FREETEXTTABLE, STOPLIST
Implement scripts by using Windows PowerShell and SQL Server Management Objects (SMOs).
This objective may include but is not limited to: cmdlets
Implement Service Broker solutions.
This objective may include but is not limited to: services, queues, messages, message types, message validation, contracts, activation procedures
Track data changes.
This objective may include but is not limited to: change tracking; database audit specification; CHANGETABLE
Working with XML Data
Retrieve relational data as XML.
This objective may include but is not limited to: FOR XML
Transform XML data into relational data.
This objective may include but is not limited to: OPENXML, sp_xml_preparedocument, sp_xml_removedocument
Query XML data.
This objective may include but is not limited to: XQUERY, XPATH
Manage XML data.
This objective may include but is not limited to: XML datatype, XML indexes, XML schema collections
Gathering Performance Information
Capture execution plans.
This objective may include but is not limited to: graphical execution plans; SHOWPLAN
Gather trace information by using the SQL Server Profiler.
Collect output from the Database Engine Tuning Advisor.
This objective may include but is not limited to: prepare a workload
Collect information from system metadata.
This objective may include but is not limited to: Dynamic Management Views (DMVs), catalog views
Designing a Database Strategy
Identify which SQL Server components to use to support business requirements.
This objective may include but is not limited to: SQL Server Agent, DB mail, Service Broker, Full-Text Search, Distributed Transaction Coordinator (DTC), linked servers
Design a database model.
This objective may include but is not limited to: normalization, entities, entity relationships
Design a data model by using the Entity Framework.
This objective may include but is not limited to: defining and maintaining mapping (query vs. stored proc), defining a data model, entity SQL
Design an application strategy to support security.
This objective may include but is not limited to: application roles, schema ownership, execution context, Windows vs. SQL authentication, permissions and database roles
Design a solution by using Service Broker.
This objective may include but is not limited to: designing services, contracts, activation, routes, message types, queues, remote service binding, priorities
Design a Full-Text Search strategy.
This objective may include but is not limited to: CONTAINS, CONTAINSTABLE, FREETEXT, FREETEXTTABLE
Designing Database Tables
Identify the appropriate usage of new data types.
This objective may include but is not limited to: geography, geometry, hierarchyid, date, time, datetime2, datetimeoffset, varbinary (max) filestream
Design tables.
This objective may include but is not limited to: table width, sizing data types, IN_ROW_DATA (BLOBs), overflow data, sparse columns, computed columns, persisted computed columns
Design data integrity.
This objective may include but is not limited to: primary key, foreign key, check constraint, default constraint, NULL/NOT NULL, unique constraint, DML triggers
Designing Programming Objects
Design T-SQL stored procedures.
This objective may include but is not limited to: execution context (EXECUTE AS), table-valued parameters, determining appropriate way to return data, WITH RECOMPILE/OPTION (RECOMPILE), error handling, TRY/CATCH
Design views.
This objective may include but is not limited to: common table expressions, partitioned views, WITH CHECK OPTION, WITH SCHEMABINDING
Design T-SQL table-valued and scalar functions.
This objective may include but is not limited to: inline table-valued functions vs. views, multi-statement table-valued functions, determinism
Design Common Language Runtime (CLR) table-valued and scalar functions.
This objective may include but is not limited to: assembly PERMISSION_SET, CLR vs. T-SQL, ordered vs. non-ordered
Design CLR stored procedures, aggregates, and types.
This objective may include but is not limited to: assembly PERMISSION_SET, CLR vs. T-SQL, ordered vs. non-ordered, executing static methods on user-defined types, multi-parameter aggregations
Evaluate special programming constructs.
This objective may include but is not limited to: dynamic vs. prepared SQL (CREATE PROCEDURE... WITH EXECUTE AS) procedure, protecting against SQL injection
Designing a Transaction and Concurrency Strategy
Design the locking granularity level.
This objective may include but is not limited to: locking hints, memory consumption
Design for implicit and explicit transactions.
This objective may include but is not limited to: nested transactions, savepoints, TRY/CATCH
Design for concurrency.
This objective may include but is not limited to: hints, transaction isolation level, effect of database option READ_COMMITTED_SNAPSHOT, rowversion and timestamp datatypes
Designing an XML Strategy
Design XML storage.
This objective may include but is not limited to: determining when to use XML for storage, untyped vs. typed (XML schema collection)
Design a strategy to query and modify XML data.
This objective may include but is not limited to: when to use appropriate XPath and XQuery expressions, .query vs. .value, XML indexes for performance, typed vs. untyped, .exist, .modify
Design a query strategy by using FOR XML.
This objective may include but is not limited to: views, FOR XML PATH and EXPLICIT, FOR XML... TYPE
Design a strategy to transform XML into relational data.
This objective may include but is not limited to: .nodes, .value, .query, XQuery and XPath
Designing Queries for Performance
Optimize and tune queries.
This objective may include but is not limited to: optimizer hints, common table expressions (CTEs), search conditions, temporary storage, GROUP BY [GROUPING SETS|CUBE|ROLLUP]
Analyze execution plans.
This objective may include but is not limited to: execution order, logical and physical operators, join operators, minimize resource costs, compare query costs
Evaluate the use of row-based operations vs. set-based operations.
This objective may include but is not limited to: row-based logic vs. set-based logic, batching, splitting implicit transactions
Designing a Database for Optimal Performance
Optimize indexing strategies.
This objective may include but is not limited to: table-valued function, views, filtered indexes, indexed views, clustered and non-clustered, unique
Design scalable database solutions.
This objective may include but is not limited to: scale up vs. scale out, federated databases, distributed partitioned views, scalable shared databases, replication, offloading read-only query (database mirroring)
Resolve performance problems by using plan guides.
This objective may include but is not limited to: object plan guides, SQL plan guides, templates plan guides, dynamic management views
Design a table and index compression strategy.
This objective may include but is not limited to: row vs. page, update frequency, page compression implementation, compressing individual partitions
Design a table and index partitioning strategy.
This objective may include but is not limited to: switching partitions, merging, splitting, staging, creating, schemes and functions