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

mssql

Как узнать в какие таблицы чаше всего пишутся и читаются данные в mssql и в кокой файловой группе они состоят. И сразу размер таблиц

Задача была узнать в какую файловую группу чаше всего происходит запись и чтение данных. Что бы можно было перенести файловые группы на разные хранилки с разными скоростями. И так же размер таблиц


/************************************************************
 *  * k.moskvichev ©
 * Time: 18.08.2016 13:19:03
 ************************************************************/

/************************************************************
 * Code formatted by SoftTree SQL Assistant © v7.4.435
 * Time: 18.08.2016 13:18:52
 ************************************************************/

SELECT 		
      @@ServerName                  AS ServerName
           ,DB_NAME()                     AS DBName
           ,OBJECT_NAME(ddius.object_id)  AS TableName
           ,SUM(ddius.user_seeks + ddius.user_scans + ddius.user_lookups) AS Reads
           ,SUM(ddius.user_updates)       AS Writes
           ,SUM(
                ddius.user_seeks + ddius.user_scans + ddius.user_lookups
                + ddius.user_updates
            )                             AS [Reads&Writes] /* ( SELECT    DATEDIFF(s, create_date, GETDATE()) / 86400.0
            FROM      master.sys.databases
            WHERE     name 
Читать далее

Шринк логов (сжать логи) у всех баз на сервере

Необходимо сжать логи у всех баз на сервере

declare @db nvarchar(10)
declare @sql nvarchar(256)
declare cursor_size_srv cursor for
SELECT  --@@SERVERNAME AS Server ,
        name AS DBName 
        --recovery_model_Desc AS RecoveryModel ,
        --Compatibility_level AS CompatiblityLevel ,
        --create_date ,
        --state_desc
FROM    sys.databases
where name not in ('master','msdb','model','tempdb') 
--and recovery_model_desc = 'full'
ORDER BY Name; 
 
OPEN cursor_size_srv
FETCH NEXT FROM cursor_size_srv INTO @db
WHILE (@@FETCH_STATUS=0)
BEGIN
set @sql = 'USE '+@db+'
GO
DBCC SHRINKFILE (N'''+@db+'_log'' , 0, TRUNCATEONLY)
GO'
print (@sql);
FETCH NEXT FROM cursor_size_srv INTO @db
END
CLOSE cursor_size_srv
DEALLOCATE cursor_size_srv

Результат скопировать и выполнить в новом запросе

USE rss1
GO
DBCC SHRINKFILE 
Читать далее

Задача сделать смс оповещение, сколько готово закупок к 8 утра.

Сначала сделаем 1 таблицу. Эта таблица будет темповая.

GO

/****** Object:  Table [dbo].[zakupki]    Script Date: 05/11/2016 16:18:14 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[zakupki](
	[SchedDate] [datetime] NOT NULL,
	[Type_in_schedule] [varchar](16) NOT NULL,
	[рассчитано] [int] NULL,
	[колво строк рассчитано] [int] NULL,
	[кол-во заявок] [int] NULL,
	[колво строк] [int] NULL,
	[заявки с автоутверждением] [int] NULL,
	[колво строк автоутвержд.] [int] NULL,
	[не расчитаные строки] AS [колво строк] - [колво строк рассчитано],
	[не расчитаные заявки] AS [кол-во заявок] - [рассчитано]
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

Создадим вторую таблицу. Эта таблица будет архивная… Читать далее

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

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

 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;
Читать далее

Когда не работает монитор активности в MSSQL

ЗАГОЛОВОК: Microsoft SQL Server Management Studio
——————————
Монитору активности не удается выполнить запросы к серверу
Монитор активности для этого экземпляра будет приостановлен.
Возобновить его работу можно через контекстное меню панели просмотра.

Выполнить команду lodctr /r

Установить 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] 'имя базы'

 

Узнать размер базы данных mssql и сделать сенсор в prtg. Мониторим размер базы.

SELECT
--CONVERT(float(
	
	((dbsize + logsize)    * 8192 / 1048576 ) РазмерБазы
FROM
(
 SELECT SUM(CONVERT(real ,CASE WHEN status & 64 = 0 THEN size ELSE 0 END)) dbsize
 , SUM(CONVERT(REAL ,CASE WHEN status & 64 <> 0 THEN size ELSE 0 END)) logsize
 FROM dbo.sysfiles
)
big

Узнать размер базы данных mssql и сделать сенсор в prtg. Мониторим размер базы.

Настройка сенсора в ptrg.

Узнать размер базы данных mssql и сделать сенсор в prtg. Мониторим размер базы.

Как выглядит сенсор

Узнать размер базы данных mssql и сделать сенсор в prtg. Мониторим размер базы.