• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/37

Click to flip

Use LEFT and RIGHT arrow keys to navigate between flashcards;

Use UP and DOWN arrow keys to flip the card;

H to show hint;

A reads text to speech;

37 Cards in this Set

  • Front
  • Back

see queries currently running on SQL Server

SELECT sqltext.TEXT,
req.session_id,
req.status,
req.command,
req.cpu_time,
req.total_elapsed_time
FROM sys.dm_exec_requests req
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext
amount of connections to a sql server(w)
select db_name(dbid) as db, count(dbid) as connection from sys.sysprocesses where dbid > 0 group by dbid
kill a session
KILL [session_id]
kill all connections to a db
DECLARE @DatabaseName nvarchar(50)
SET @DatabaseName = N'navigator1'

DECLARE @SQL varchar(max)

SELECT @SQL = COALESCE(@SQL,'') + 'Kill ' + Convert(varchar, SPId) + ';'

FROM MASTER..SysProcesses
WHERE DBId = DB_ID(@DatabaseName) AND SPId <> @@SPId

--SELECT @SQL
EXEC(@SQL)
see compatibility level of a db
select compatibility_level, name from sys.databases
list compatibility level (cmd)
60 = SQL Server 6.0
65 = SQL Server 6.5
70 = SQL Server 7.0
80 = SQL Server 2000
90 = SQL Server 2005
100 = SQL Server 2008
set compatibility level (cmd)
1)ALTER DATABASE database_name SET SINGLE_USER;
2)ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = { 80 | 90 | 100 }
3)ALTER DATABASE database_name SET MULTI_USER;
backup a database TSQL
DECLARE @DB AS VARCHAR(200), @PATH AS VARCHAR(400);
SET @DB = N'navigator1';
SET @PATH = N'D:\MSSQL\BACKUP\'+ @DB + N'-09-30-2011.bak'

BACKUP DATABASE @DB TO
DISK = @PATH
To confirm the Database Mail activation is started, execute the following statement
EXEC msdb.dbo.sysmail_help_status_sp;
3.To view the error messages returned by Database Mail, execute the following statement
SELECT * FROM msdb.dbo.sysmail_event_log;
add account to idocSendReceive
DECLARE @WMSGuid VARCHAR(80),
@URL VARCHAR(80),
@TODAY DATE,
@WHEN DATE;
SET @WMSGuid = '120836fc-05a8-4659-b093-cf2a6a386feb';
SET @URL = 'http://www.nscnavigator.com/' + 'ultera_nav';
SET @TODAY = GETDATE();
SET @WHEN = DATEADD(YEAR, 16, @TODAY);



INSERT INTO dbo.idocAccount VALUES (0, @WMSGuid, 51, 7, 7, @URL, @TODAY, @WHEN, 1)
last query ran
SELECT deqs.last_execution_time AS [Time], dest.TEXT AS [Query]
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
ORDER BY deqs.last_execution_time DESC
last querry ran more detailed
SELECT TOP 50 * FROM(SELECT COALESCE(OBJECT_NAME(s2.objectid),'Ad-Hoc') AS ProcName,
execution_count,s2.objectid,
(SELECT TOP 1 SUBSTRING(s2.TEXT,statement_start_offset / 2+1 ,
( (CASE WHEN statement_end_offset = -1
THEN (LEN(CONVERT(NVARCHAR(MAX),s2.TEXT)) * 2)
ELSE statement_end_offset END)- statement_start_offset) / 2+1)) AS sql_statement,
last_execution_time
FROM sys.dm_exec_query_stats AS s1
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS s2 ) x
WHERE sql_statement NOT like 'SELECT TOP 50 * FROM(SELECT %'
--and OBJECTPROPERTYEX(x.objectid,'IsProcedure') = 1
ORDER BY last_execution_time DESC
get a list of all user tables in a DB
SELECT * FROM sysobjects WHERE type = 'U'
get a list of all DB in sql
EXEC sp_databases
EXEC sp_helpdb
query to backup all DB in SQL
DECLARE @name VARCHAR(50) -- database name
DECLARE @path VARCHAR(256) -- path for backup files
DECLARE @fileName VARCHAR(256) -- filename for backup
DECLARE @fileDate VARCHAR(20) -- used for file name

SET @path = 'C:\Backup\'

SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)

DECLARE db_cursor CURSOR FOR
SELECT name
FROM master.dbo.sysdatabases
WHERE name NOT IN ('master','model','msdb','tempdb')

OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name

WHILE @@FETCH_STATUS = 0
BEGIN
SET @fileName = @path + @name + '_' + @fileDate + '.BAK'
BACKUP DATABASE @name TO DISK = @fileName

FETCH NEXT FROM db_cursor INTO @name
END

CLOSE db_cursor
DEALLOCATE db_cursor
list of all user tables
SELECT name
FROM master.dbo.sysdatabases
WHERE name NOT IN ('master','model','msdb','tempdb')
generate sha1
declare @hash varchar(100)
SELECT @hash = '2011!V0dka'
SELECT HASHBYTES('SHA1', @hash)
concat fields in query result
SELECT FirstNAme + ' ' + LastName, EmailAddress as FullName FROM SalesLT.Customer
generate an MD5 hash
declare @hash varchar(100)
SELECT @hash = '2011!V0dka'
SELECT HASHBYTES('MD5', @hash)
backup all db in an instance
DECLARE @name VARCHAR(50) -- database name
DECLARE @path VARCHAR(256) -- path for backup files
DECLARE @fileName VARCHAR(256) -- filename for backup
DECLARE @fileDate VARCHAR(20) -- used for file name

SET @path = 'd:\MSSQL\backup\2012-03-06\'

SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)

DECLARE db_cursor CURSOR FOR
SELECT name
FROM master.dbo.sysdatabases
WHERE name NOT IN ('master','model','msdb','tempdb')

OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name

WHILE @@FETCH_STATUS = 0
BEGIN
SET @fileName = @path + @name + '_' + @fileDate + '.BAK'
BACKUP DATABASE @name TO DISK = @fileName

FETCH NEXT FROM db_cursor INTO @name
END

CLOSE db_cursor
DEALLOCATE db_cursor
extract date from date and time
declare @date datetime
set @date=CONVERT(varchar(8), GETDATE(), 112)
SELECT @date
Look up a value in all tables
DECLARE @SearchStr nvarchar(100)
SET @SearchStr = '## YOUR STRING HERE ##'

CREATE TABLE #Results (ColumnName nvarchar(370), ColumnValue nvarchar(3630))

SET NOCOUNT ON

DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110)
SET @TableName = ''
SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%','''')

WHILE @TableName IS NOT NULL

BEGIN
SET @ColumnName = ''
SET @TableName =
(
SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
AND OBJECTPROPERTY(
OBJECT_ID(
QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
), 'IsMSShipped'
) = 0
)

WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)

BEGIN
SET @ColumnName =
(
SELECT MIN(QUOTENAME(COLUMN_NAME))
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = PARSENAME(@TableName, 2)
AND TABLE_NAME = PARSENAME(@TableName, 1)
AND DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar', 'int', 'decimal')
AND QUOTENAME(COLUMN_NAME) > @ColumnName
)

IF @ColumnName IS NOT NULL

BEGIN
INSERT INTO #Results
EXEC
(
'SELECT ''' + @TableName + '.' + @ColumnName + ''', LEFT(' + @ColumnName + ', 3630) FROM ' + @TableName + ' (NOLOCK) ' +
' WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2
)
END
END
END

SELECT ColumnName, ColumnValue FROM #Results

DROP TABLE #Results
3 line kill all connections to a DB
DECLARE @SQL VARCHAR(8000)

SELECT @SQL=COALESCE(@SQL,'')+'Kill '+CAST(spid AS VARCHAR(10))+ '; '
FROM sys.sysprocesses
WHERE DBID=DB_ID('catglobal_test')

EXEC(@SQL)
kill all connections to a DB
-- Create the sql to kill the active database connections
declare @execSql varchar(1000), @databaseName varchar(100)
-- Set the database name for which to kill the connections
set @databaseName = 'myDatabase'

set @execSql = ''
select @execSql = @execSql + 'kill ' + convert(char(10), spid) + ' '
from master.dbo.sysprocesses
where db_name(dbid) = @databaseName
and
DBID <> 0
and
spid <> @@spid
exec(@execSql)
kill all connections to a DB
using alter database
alter database dbName set single_user with rollback immediate

alter database dbName set multi_user with rollback immediate
list each table in a DB with its particular size
SELECT
Coalesce(8 * Sum(CASE WHEN si.indid IN (255) THEN si.reserved END), 0) AS blob_kb
, 8 * Sum(CASE WHEN si.indid IN (0, 1) THEN si.reserved END) AS data_kb
, Coalesce(8 * Sum(CASE WHEN si.indid NOT IN (0, 1, 255) THEN si.reserved END), 0) AS index_kb
, so.name
FROM dbo.sysobjects AS so
JOIN dbo.sysindexes AS si
ON (si.id = so.id)
WHERE 'U' = so.type
GROUP BY so.name
ORDER BY so.name
find all columns with a particular name in a DB
SELECT t.name AS table_name,
SCHEMA_NAME(schema_id) AS schema_name,
c.name AS column_name
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
WHERE c.name LIKE '%EmployeeID%'
ORDER BY schema_name, table_name;
find a value in all tables
DECLARE @SearchStr nvarchar(100)
SET @SearchStr = 'Corrective Action Report'
-- Purpose: To search all columns of all tables for a given search string
-- Updated and tested by Tim Gaunt
CREATE TABLE #Results (ColumnName nvarchar(370), ColumnValue nvarchar(3630))

SET NOCOUNT ON

DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110)
SET @TableName = ''
SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%','''')

WHILE @TableName IS NOT NULL

BEGIN
SET @ColumnName = ''
SET @TableName =
(
SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
AND OBJECTPROPERTY(
OBJECT_ID(
QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
), 'IsMSShipped'
) = 0
)

WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)

BEGIN
SET @ColumnName =
(
SELECT MIN(QUOTENAME(COLUMN_NAME))
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = PARSENAME(@TableName, 2)
AND TABLE_NAME = PARSENAME(@TableName, 1)
AND DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar', 'int', 'decimal')
AND QUOTENAME(COLUMN_NAME) > @ColumnName
)

IF @ColumnName IS NOT NULL

BEGIN
INSERT INTO #Results
EXEC
(
'SELECT ''' + @TableName + '.' + @ColumnName + ''', LEFT(' + @ColumnName + ', 3630) FROM ' + @TableName + ' (NOLOCK) ' +
' WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2
)
END
END
END

SELECT ColumnName, ColumnValue FROM #Results

DROP TABLE #Results
move tempdb
USE master
GO
ALTER DATABASE TempDB MODIFY FILE
(NAME = tempdev, FILENAME = 'd:datatempdb.mdf')
GO
ALTER DATABASE TempDB MODIFY FILE
(NAME = templog, FILENAME = 'e:datatemplog.ldf')
GO
size of each table in a DB
SELECT
t.NAME AS TableName,
p.rows AS RowCounts,
SUM(a.total_pages) * 8 AS TotalSpaceKB,
SUM(a.used_pages) * 8 AS UsedSpaceKB,
(SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB
FROM
sys.tables t
INNER JOIN
sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN
sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN
sys.allocation_units a ON p.partition_id = a.container_id
WHERE
t.NAME NOT LIKE 'dt%'
AND t.is_ms_shipped = 0
AND i.OBJECT_ID > 255
GROUP BY
t.Name, p.Rows
ORDER BY
t.Name
disable alerts on a site after it has being copied
--delete emails from accounts
UPDATE tbl_WMSAccounts SET Email='' WHERE Username!='isupport'
--delete values from all 'email' information fields
DELETE v FROM tbl_WMSCustomFieldValues v JOIN tbl_WMSCustomFields f ON v.CustomFieldID=f.ID AND f.DataType=18
--disable alerts
UPDATE tbl_SmartAlerts SET enabled=0
UPDATE tbl_SmartViewAlerts SET Active=0
--remove automatic run of custom queries
DELETE FROM tbl_Schedules WHERE ScheduleType=0
Update MS Reports pat

Update MS reports templates path

(use for when copying sites)
UPDATE tbl_MSReports SET Path = REPLACE (Path, '#old path#', '#new path#')
UPDATE tbl_DocType SET MsReport = REPLACE (MsReport, '/vion2/', '/vion2_test/') WHERE MsReport IS NOT NULL
delete all records, not binders or modules, just the records so it is clean in a site called highreach
delete tbl_CustomObjRecords
clear all emails in IDM1
--delete emails from accounts
UPDATE tbl_WMSAccounts SET Email='' WHERE Username!='isupport'
update tbl_WMSWorkers set Email=''
update tbl_WMSContacts set Email=''

--delete values from all 'email' information fields
DELETE v FROM tbl_WMSCustomFieldValues v JOIN tbl_WMSCustomFields f ON v.CustomFieldID=f.ID AND f.DataType=18
--disable alerts
UPDATE tbl_SmartAlerts SET enabled=0
UPDATE tbl_SmartViewAlerts SET Active=0
--remove automatic run of custom queries
DELETE FROM tbl_Schedules WHERE ScheduleType=0
-----------

top 10 most poorly performing queries across all
databases

SELECT TOP 10 execution_count as [Number of Executions],
total_worker_time/execution_count as [Average CPU Time],
Total_Elapsed_Time/execution_count as [Average Elapsed Time],
(
SELECT SUBSTRING(text,statement_start_offset/2,
(CASE WHEN statement_end_offset = -1
THEN LEN(CONVERT(nvarchar(max), [text])) * 2
ELSE statement_end_offset END - statement_start_offset) /2)
FROM sys.dm_exec_sql_text(sql_handle)
) as query_text
FROM sys.dm_exec_query_stats
ORDER BY [Average CPU Time] DESC;

Finding frequency Counts with SQL

SELECT tag, count(*) AS total FROM tags GROUP by tag