Статьи

  Резюме
  [+] IT
    [+] Asterisk
    [+] Ubuntu Desktop
    [+] Ubuntu Server
    [+] Windows Server
  [-] Программирование
    [+] 1C
    ASP.NET & VB.NET
    bash & sh
    [+] HTML + CSS
    [+] Java
    PHP
    [+] QB - Quick Basic 4-4.5
    [-] T-SQL
      Бекап
    [+] VB - Visual Basic 1-6
    VBScript & JScript
  [+] Творчество
    Кофейная тема
    Наброски
    Размышления
T-SQL

Пример функции на MS TSQL

  1. CREATEFUNCTION[dbo].[Get_PlanningOrderFlags](@Order_ID BIGINT)
  2. RETURNSNVARCHAR(255)
  3. AS
  4. BEGIN
  5. DECLARE @Res NVARCHAR(255), @tmp BIGINT , @tmp2 BIGINT, @LastStatus NVARCHAR(255)
  6. SET @Res =''
  7. SELECT @tmp =COUNT(ID)FROM EventLog 
  8. WHERE EventLog.PlanningOrder_ID=@Order_ID 
  9. and EventLogType_ID=2
  10. IF @tmp<>0SET @Res = @Res +'П'
  11. SELECT @tmp =COUNT(ID)FROM EventLog 
  12. WHERE EventLog.PlanningOrder_ID=@Order_ID 
  13. and EventLogType_ID=5
  14. IF @tmp<>0SET @Res = @Res +'Z'
  15. SELECT @tmp = WWW_Order_ID FROM PlanningOrder WHERE ID=@Order_ID
  16. IF not(@tmp IS null)
  17. BEGIN
  18. SELECT @tmp2=PlanningOrder_www_id FROM PlanningOrder_www_Dates WHERE id=@tmp 
  19. SELECTTOP1 @LastStatus=Comment FROM dbo.PlanningOrder_www_EventsWHERE PlanningOrder_www_ID=@tmp2 ORDERBY Date1 DESC
  20. SET @LastStatus=isnull(@LastStatus, ' ')
  21. SET @Res = @Res +'+CONVERT(NVARCHAR,@tmp2)+'" title="'+@LastStatus+'">W'
  22. END
  23. RETURN @Res
  24. END

Пример уменьшения LOG файла

Запускать необходимо от master. 2000 - размер в мегабайтах. 

dbcc shrinkfile('vo-erp-ver02_log',2000)
BACKUP LOG [vo-erp-ver02] WITH TRUNCATE_ONLY
dbcc shrinkfile('vo-erp-ver02_log',2000)  

Измерить размер таблиц базы

  1. SELECT
  2.       DB_NAME() AS DatabaseName ,
  3.       GETDATE() AS DateCreated ,
  4.       TableName,
  5.       ROWS ,
  6.       Reserved ,
  7.       DATA ,
  8.       Used - DATA AS IndexSize ,
  9.       Reserved - Used AS Unused
  10.  
  11. FROM (
  12.             SELECT 
  13.                   USR.name + '.' + OBJ.name AS TableName ,
  14.                   MAX(row_count) AS ROWS ,
  15.                   SUM(8 * reserved_page_count) + MAX(COALESCE(LOBDATA.LobReserved,0)) AS reserved,
  16.                   SUM (8*
  17.                         CASE
  18.                              WHEN (index_id < 2) THEN (in_row_data_page_count + lob_used_page_count + row_overflow_used_page_count)
  19.                              ELSE lob_used_page_count + row_overflow_used_page_count
  20.                         END
  21.                   ) AS DATA,
  22.                   SUM (8*used_page_count)+MAX(COALESCE(LOBDATA.LobUsed,0)) AS Used
  23.  
  24.             FROM dbo.sysobjects AS OBJ
  25.                   INNER JOIN sys.schemas AS USR
  26.                   ON OBJ.uid = USR.schema_id
  27.  
  28.                   INNER JOIN sys.dm_db_partition_stats AS PS
  29.                   ON PS.OBJECT_ID = OBJ.id
  30.  
  31.                   LEFT JOIN(
  32.                         SELECT 
  33.                              parent_id,
  34.                              SUM(8*reserved_page_count) AS LOBReserved,
  35.                              SUM(8*used_page_count) AS LOBUsed
  36.                         FROM sys.dm_db_partition_stats p 
  37.                              INNER JOIN sys.internal_tables it
  38.                              ON p.OBJECT_ID = it.OBJECT_ID
  39.             WHERE it.internal_type IN (202,204)
  40.             GROUP BY IT.parent_id
  41.             ) AS LOBDATA
  42.  
  43.             ON LOBDATA.parent_id = OBJ.Id
  44.  
  45.             WHERE OBJ.type='U'
  46. GROUP BY USR.name + '.' + OBJ.name
  47. ) AS DT

Обнуление статистики в таблицах (для 1С)

exec sp_msforeachtable N'UPDATE STATISTICS ? WITH FULLSCAN'
DBCC FREEPROCCACHE
exec sp_msforeachtable N'DBCC INDEXDEFRAG (''ro-test-ver05'', ''?'')' 



Другие записи

  Бекап


X
ПнВтСрЧтПтСбВс