Why We Cannot Put Transaction Log File in A FileGroup
Why We Cannot Put Transaction Log File in A FileGroup
AdventureWorks2016CTP3 Database
Attach:
USE [master]
GO
FOR ATTACH
GO
Detech:
USE [master]
GO
GO
Filegroup:
USE [master]
GO
GO
GO
GO
GO
Secondary File:
USE [master]
GO
GO
GO
GO
GO
GO
GO
GO
GO
GO
GO
Filegroups are used to store and group data for backup, logic,
security and performance purposes. Log files dont need to be in
the same position.
9- Every student should choose one table and write the code
for following
USE [AdventureWorks2008R2]
GO
BEGIN TRANSACTION
CREATE PARTITION FUNCTION [MFUN](datetime) AS RANGE LEFT FOR VALUES
(N'2007-11-30T00:00:00', N'2007-12-30T00:00:00', N'2008-01-
30T00:00:00',
N'2008-02-29T00:00:00', N'2008-03-30T00:00:00', N'2008-04-
30T00:00:00',
N'2008-05-30T00:00:00', N'2008-06-30T00:00:00', N'2008-07-
30T00:00:00',
N'2008-08-30T00:00:00',N'2008-09-30T00:00:00',N'2008-10-30T00:00:00')
Nonclustered
CREATE NONCLUSTERED INDEX [IX_Address_StateProvinceID] ON [Person].
[Address]
( [StateProvinceID] ASC)
avg_fragmentation_in_percent , fragment_count ,
avg_fragment_size_in_pages , page_count
object_id('Person.Address'),null,null,null)
o page splits:
تقسيم الصفحة هو عملية نقل نصف الصفوف أو اإلدخاالت في بيانات كاملة أو صفحة
.فهرس إلى صفحة جديدة إلى إفساح المجال لصف جديد أو إدخال فهرس
إنشاء صفحتين غير متتاليتين من صفحة واحدة تفتقر إلى المساحة لقبول البيانات الجديدة
التي ينبغي أن تكون عليها تم إدراجها في الصفحة بسبب الترتيب المنطقي للبيانات
. المحددة في تلك الصفحة
Filegroup:
exec sp_helpfilegroup
select * from sys.filegroups
index:
select * from sys.indexes
11- Find queries with high memory grants – using Query Store
13-Write a query that displays the names of the customers along with the product
names that they have purchased. Hint: Five tables will be required to write this
query!
SELECT FirstName, MiddleName, LastName, Prod.Name
FROM Sales.Customer AS C
INNER JOIN Person.Person AS P ON C.PersonID = P.BusinessEntityID
INNER JOIN Sales.SalesOrderHeader AS SOH ON C.CustomerID = SOH.CustomerID
INNER JOIN Sales.SalesOrderDetail AS SOD
ON SOH.SalesOrderID = SOD.SalesOrderID
INNER JOIN Production.Product AS Prod ON SOD.ProductID = Prod.ProductID;
16-Write a query that can be used to find the queries that use the most reads,
writes, andworker time (CPU).
SELECT TOP 10 SUBSTRING(qt.TEXT, (qs.statement_start_offset/2)+1,
((CASE qs.statement_end_offset
ELSE qs.statement_end_offset
END - qs.statement_start_offset)/2)+1),
qs.execution_count,
qs.total_logical_reads, qs.last_logical_reads,
qs.total_logical_writes, qs.last_logical_writes,
qs.total_worker_time,
qs.last_worker_time,
qs.total_elapsed_time/1000000 total_elapsed_time_in_S,
qs.last_elapsed_time/1000000 last_elapsed_time_in_S,
qs.last_execution_time,
qp.query_plan
FROM sys.dm_exec_query_stats qs
20-Write a t- code to identify the locks and process ids involved in the blocking chain
SELECT -- use * to explore
request_session_id AS spid,
resource_type AS restype,
resource_database_id AS dbid,
DB_NAME(resource_database_id) AS dbname,
resource_description AS res,
resource_associated_entity_id AS resid,
request_mode AS mode,
request_status AS status
FROM sys.dm_tran_locks;
GO
GO
GO
GO
GO
use [master]
GO
GO
USE [master]
GO
GO
GO
GO
22-CREATE SERVER ROLE FOR SHUTING DOWN and ROLE FOR EXECUTING
STORED PROCEDURES
ROLE FOR SHUTING DOWN:
USE [master]
GO
CREATE SERVER ROLE [shutdownadmin]
GO
use [master]
GO
GRANT SHUTDOWN TO [shutdownadmin]
GO
ROLE FOR EXECUTING STORED PROCEDURES:
USE AdventureWorks2008R2_Data
GO
CREATE ROLE db_SPExecute
go
ON ALL SERVER
FOR LOGON
AS
BEGIN
IF ORIGINAL_LOGIN() = 'YEMENSBA'
and
BEGIN
ROLLBACK
INSERT AdventureWorks2008R2_Data.dbo.RestrictedLogons
(Login, TimeStamp)
VALUES (ORIGINAL_LOGIN(),GETDATE())
END
END
Transaction log: does a backup of the transaction log; requires that at least one Full backup
has been done before hand.
Differential: does a backup of all database pages that have changed since the last full
backup. Full restore:
USE Master