Перейти к содержимому

Mssql

Все по MSsql

Сбор статистики по заполнению фрагментации индекса на отдельных таблицах

Первым делом создадим табличку куда будет собираться статистика.

 CREATE TABLE kmosk.dbo.reindeks_SALESLINE
  ( [database_id] VARCHAR(max)
      ,[object_id] VARCHAR(max)
      ,[index_id] VARCHAR(max)
      ,[partition_number] VARCHAR(max)
      ,[index_type_desc] VARCHAR(max) 
      ,[alloc_unit_type_desc] VARCHAR(max) 
      ,[index_depth] VARCHAR(max) 
      ,[index_level] VARCHAR(max) 
      ,[avg_fragmentation_in_percent] VARCHAR(max) 
      ,[fragment_count] VARCHAR(max) 
      ,[avg_fragment_size_in_pages] VARCHAR(max) 
      ,[page_count] VARCHAR(max) 
      ,[avg_page_space_used_in_percent] VARCHAR(max) 
      ,[record_count] VARCHAR(max) 
      ,[ghost_record_count] VARCHAR(max) 
      ,[version_ghost_record_count] VARCHAR(max) 
      ,[min_record_size_in_bytes] VARCHAR(max) 
      ,[max_record_size_in_bytes] VARCHAR(max) 
      ,[avg_record_size_in_bytes] VARCHAR(max) 
      ,[forwarded_record_count] VARCHAR(max)
    , vreme datetime NOT NULL DEFAULT GETDATE())
   
       

После этого создадим задание которое будет наполнять табличьку

DECLARE @db_id SMALLINT;
DECLARE @object_id INT;

SET @db_id = DB_ID(N'ax_molniya');
SET @object_id = OBJECT_ID(N'ax_molniya.[dbo].[SALESLINE]');

IF @db_id IS NULL
BEGIN;
    PRINT N'Invalid database';
END;
ELSE IF @object_id IS NULL
BEGIN;
    PRINT N'Invalid object';
END;
Читать далее

Установить ms sql 2005 Enterprise на windows server 2012 srandart 64x

Что бы установить mssql 2005 на сервер 2012 необходимо выполнить следующие действия:

  • Выберите веб-сервер (IIS) Роль
  • Добавьте следующие дополнительные службы ролей веб-сервера (обратите внимание, что некоторые из них будут автоматически подтягивать другие комоненты, просто принять и двигаться дальше):
    • Перенаправление HTTP
    • Проверка подлинности Windows
    • ASP.NET 3.5 (обратите внимание, что вам необходимо указать мастеру, чтобы посмотреть в папке \ Sources \ SxS из установочного диска Windows, 2012 для этого, чтобы правильно установить, просто нажмите на ссылку “Указать альтернативный исходный путь”, прежде чем нажать Установить)
    • IIS 6 Совместимость метабазы
    • IIS 6 Совместимость WMIУстановить ms sql 2005 Enterprise на windows server 2012 srandart 64x

Запустите SQL Server 2005 установку, игнорируя любые предупреждения совместимости

  • Если
Читать далее

Хранимая процедура. Информация о размере выбранной БД MS SQL Server

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[getSpaceUsedSingleDB]
	-- имя БД
	@name nvarchar(24)

AS
BEGIN
	SET NOCOUNT ON
	-- Create a tempory table
	DECLARE @SpaceUsed TABLE
	 (
	  name nvarchar(24), 
	  db_size nvarchar(13),
	  owner nvarchar(24),
	  dbid smallint,
	  created char(11),
	  status varchar(340),
	  compatibility_level tinyint
	  )

	--Populate the table
	INSERT INTO @SpaceUsed EXEC sp_helpdb

	--Select the size of the specified table
	SELECT
	  CONVERT (DECIMAL, REPLACE (db_size, 'MB', ''))
	  AS [size]
	  FROM @SpaceUsed
	  WHERE name = @name
END

Выполнить процедуру

exec [dbo].[getSpaceUsedSingleDB] 'имя базы'

 

Посмотреть информацию по файлам бекапа

RESTORE HEADERONLY 
FROM DISK = N'\\192.168.0.38\Backup\файлы с S0001\axapta2009\DAX2009_DEV.bak' 
WITH NOUNLOAD;
GO
RESTORE HEADERONLY 
FROM DISK = N'\\192.168.0.38\Backup\s0059\directum\directum_backup_2016_02_05_080003_9084073.bak' 
WITH NOUNLOAD;
GO
RESTORE HEADERONLY 
FROM DISK = N'\\192.168.0.38\Backup\s0031\бекапы с диска F за 13 год\backup from e(temp)\ReportServerData.bak' 
WITH NOUNLOAD;
GO

mRemoteNG - confCons22.04.2015.xml 2016-02-08 14.18.25

Аудит mssql 2005 с помощью SQL Server Profiler и создания задания в агенте.

Задание.

Не обходим аудит который отслеживал кто изменил , создал, удалил, задание или базу, а также кто менял настройки mssql.

Был выбран Profiler так как в нем уже есть шаблоны аудита.

Для на чала создаем трассировку в самом Profiler.

Аудит mssql 2005 с помощью SQL Server Profiler и создания задания в агенте.

Потом делаем определение трассировки

Аудит mssql 2005 с помощью SQL Server Profiler и создания задания в агенте.

Получаем вот такой код

-- ======================================================================================================

-- Author: Константин Москвичёв

-- Create date: 13/04/2015

-- Description:    0.2b

-- Описание: Запускает трасировку для аудита. 

-- ======================================================================================================

declare @rc int
declare @TraceID int
declare @maxfilesize bigint
declare @filename nvarchar(128)
declare @filecount int

--указываем максимальный размер файла
set @maxfilesize = 99

--указываем путь и имя файла, к имени файла дописывается 
Читать далее

Шаблон для отправки оповещения на почту

Email уведомление должно выглядеть так:

Заголовок письма [server name].[job status].[job desc]
Тема письма [job name]
Тело письма [job time]
declare @status nvarchar(5)
declare @jobdesc nvarchar(256)
declare @jobname nvarchar(256)
declare @body_alert nvarchar (max)
declare @subject_alert nvarchar (256)
declare @getdate nvarchar(26)
 
set @status = 'OK' -- статус OK или ERROR
set @jobname = 'Mirror exceed base backup' -- имя задания в агенте mssql
set @jobdesc = 'Создание бэкапа бд exceed'  -- краткое описание задания,понятное человеку
 
set @getdate = CONVERT(nvarchar(26),getdate(),113)
set @body_alert = ' <p><small>Имя сервера</small>: '+@@servername + '</p>
					<p><small>Название задания в агенте sql server</small>: '+@jobname+'</p>
					<p><small>Статус задания</small>: '+@status + '</p>
					<p><small>Описание задания</small>: 
Читать далее

MSsql чтение excel и txt

чтение excel

SELECT * INTO XLImportBetaX FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=C:\test\xltest.xls', 'SELECT jobid,userid,start,stop,date FROM [14.09.2012$]')

insert INTO XLImport512 select * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=C:\test\xltest.xls', 'SELECT * FROM [13.09.2012$]')

SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=C:\test\xltest.xls', 'SELECT jobid,userid,start,stop,date FROM [14.09.2012$]')

select * from XLImportBeta2 exec sp_configure 'Ad Hoc Distributed Queries', 1 RECONFIGURE

чтение txt

 SELECT * FROM OPENROWSET(BULK N'C:\aos1.txt',SINGLE_CLOB ) AS Document

SELECT a.* FROM OPENROWSET( BULK 'c:\aos1.txt',
 FORMATFILE = 'c:\values.fmt') AS a;
 
   file format
 
 9.0
2
1  SQLCHAR  0  20 ":" 1 ID ""
2  SQLCHAR  0  20 "*" 2 IwD ""

 

Создание n баз из одного бэкапа под разными именами

declare @name nvarchar(56)
declare @cmd nvarchar(512)
DECLARE @Cursor CURSOR
SET @Cursor = CURSOR FOR
select '0'+right(servername,2) as name from s0055.rkur_dbastat.dbo.ServerName
where is_disable = 0
--and servername = 's1027'
 
OPEN @Cursor
FETCH NEXT FROM @Cursor INTO @name
 
WHILE (@@FETCH_STATUS = 0)
BEGIN
print @name
set @cmd = 'RESTORE DATABASE [planograms'+@name+'] 
FROM DISK= N''H:\MSSQL\Backup\etalon_planograms_20150112.bak'' 
WITH  FILE = 1 
,MOVE  N''Planograms'' TO N''H:\MSSQL\Data\planograms'+@name+'.mdf''
,MOVE N''Planograms_log'' TO N''H:\MSSQL\Data\planograms'+@name+'_1.ldf''
,  NOUNLOAD
,  STATS = 10
'
print @cmd
--exec (@cmd)
 
FETCH NEXT FROM @Cursor INTO @name
end

Хранимая процедура для добавления новой бд

Как использовать

use master
go
exec CreateNewPlanograms
@name='999'

код процедуры

USE [master]
Читать далее