블로그 이미지
bedbmsguru

Notice

Recent Post

Recent Comment

Recent Trackback

Archive

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
  • total
  • today
  • yesterday
2018. 10. 26. 21:30 SQL SERVER

SELECT t.name AS TableName, i.name AS IndexName , p.partition_number, e.name, f.name, f.type_desc, p.rows, rv.value, 
CASE WHEN f.boundary_value_on_right = 0 THEN 'LEFT' ELSE 'Right' END AS LeftRightBoundary,
CASE WHEN ISNULL(rv.value, rv2.value) IS NULL THEN 'N/A' 
ELSE
    CASE WHEN boundary_value_on_right = 0 AND rv2.value IS NULL THEN '>=' 
        WHEN boundary_value_on_right = 0 THEN '>' 
        ELSE '>=' 
    END + ' ' + ISNULL(CONVERT(varchar(50), rv2.value, 121), 'Min Value') + ' ' + 
        CASE boundary_value_on_right WHEN 1 THEN 'and <' 
                ELSE 'and <=' END 
        + ' ' + ISNULL(CONVERT(varchar(50), rv.value, 121), 'Max Value') 
END AS TextComparison
FROM sys.tables AS t  
JOIN sys.indexes AS i  
    ON t.object_id = i.object_id  
JOIN sys.partitions AS p  
    ON i.object_id = p.object_id AND i.index_id = p.index_id   
JOIN (select bb.name, aa.destination_id from sys.destination_data_spaces aa inner join sys.data_spaces bb ON aa.data_space_id=bb.data_space_id) E
ON p.partition_number = e.destination_id
JOIN  sys.partition_schemes AS s   
    ON i.data_space_id = s.data_space_id  
JOIN sys.partition_functions AS f   
    ON s.function_id = f.function_id
LEFT JOIN sys.partition_range_values AS r   
    ON f.function_id = r.function_id and r.boundary_id = p.partition_number  
LEFT JOIN sys.partition_range_values AS rv
    ON f.function_id = rv.function_id
    AND p.partition_number = rv.boundary_id     
LEFT JOIN sys.partition_range_values AS rv2
    ON f.function_id = rv2.function_id
    AND p.partition_number - 1= rv2.boundary_id
WHERE i.type <= 1 AND t.name = 'LOGIN_INFO_REPOSITORY'
ORDER BY t.name, p.partition_number;

'SQL SERVER' 카테고리의 다른 글

user가 가지고 있는 권한 확인  (0) 2018.10.26
Linked server List  (0) 2018.10.26
SSMS의 Tip  (0) 2018.10.26
Index REBUILD OR REORG 쿼리  (0) 2018.10.26
알아봐요 할 DMV  (0) 2018.09.19
posted by bedbmsguru
2018. 10. 26. 21:27 SQL SERVER

     1.Go
       Batch의 끝을 나타냄 Go 뒤에 숫자를 붙일 경우 숫자 만큼 실행됨


  1. 유용한 단축키
 
단축키용도
Ctrl + UDB변경
Ctrl + R결과창을 Toggle
Ctrl + ]매칭되는 괄호찾기
Ctrl + K, Ctrl + C현재행 주석처리
Ctrl + K, Ctrl + U현재행 주석풀기
Shift + Alt + EnterCode Editor 를 Full Screen
Shift + Alt + 화살표키
여러줄에 동시코딩할때 여러줄에 한번에 ' 넣기 등 
Ctrl + ICode Editor 내의 Quick Search


  1. 열(Column)전체를 Code Editor로 내보내기
     - 테이블 리스트의 Object Explorer 의 [열](column) 항목을 Code Editor로 Drag&Drop


  1. Query window 에 Line Number 추가하기
      

  1. Alt 키를 누른상태에서 텍스트 선택하기 삭제해야 될 블럭을 커서가 있는 기준으로 선택 가능





'SQL SERVER' 카테고리의 다른 글

Linked server List  (0) 2018.10.26
파티션(partition) 테이블 현황조회  (0) 2018.10.26
Index REBUILD OR REORG 쿼리  (0) 2018.10.26
알아봐요 할 DMV  (0) 2018.09.19
Troubleshooting transactional replication latency issues  (0) 2018.08.10
posted by bedbmsguru
2018. 10. 26. 21:26 SQL SERVER

SELECT  OBJECT_NAME(s.[object_id]) AS [ObjectName] ,
        i.name AS [IndexName] ,
        i.index_id ,
        user_seeks + user_scans + user_lookups AS [Reads] ,
        user_updates AS [Writes] ,
              [Indexsize(MB)],
              TB_SIZE.[Tablesize(MB)],
        i.type_desc AS [IndexType] ,
        i.fill_factor AS [FillFactor],
              st.avg_fragmentation_in_percent,
              case when st.avg_fragmentation_in_percent > 30 then
                     'alter index ' + i.name + ' on ' + OBJECT_NAME(s.[object_id]) + ' rebuild with (online = on)'
              else
                     'alter index ' + i.name + ' on ' + OBJECT_NAME(s.[object_id]) + ' REORGANIZE'
              end AS QUERY
FROM    sys.dm_db_index_usage_stats AS s
        INNER JOIN sys.indexes AS i ON s.[object_id] = i.[object_id]
              cross apply sys.dm_db_index_physical_stats(db_id(),s.[object_id], i.index_id, null, null) ST
              INNER JOIN
              (
               SELECT
                     i.OBJECT_ID,
                     OBJECT_NAME(i.OBJECT_ID) AS TableName,
                     i.name AS IndexName,
                     i.index_id AS IndexID,
                     8 * SUM(a .used_pages) / 1024 AS 'Indexsize(MB)'
              FROM sys .indexes AS i
                     JOIN sys .partitions AS p ON p.OBJECT_ID = i.OBJECT_ID AND p.index_id = i.index_id
                     JOIN sys .allocation_units AS a ON a.container_id = p.partition_id
                     --where OBJECT_NAME (i. OBJECT_ID) ='TLogState'
                     GROUP BY i. OBJECT_ID,i .index_id, i.name
              )AS IND_SIZE
              ON i.object_id = IND_SIZE.object_id
              AND i.index_id = IND_SIZE.IndexID
              INNER JOIN
              (
                     
                     SELECT
                           i.object_id,
                           SUM(a .total_pages) * 8 /1024 AS 'Tablesize(MB)'
                     FROM  sys. indexes i
                     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 i.OBJECT_ID > 255
                     GROUP BY i.object_id
              )AS TB_SIZE
              ON TB_SIZE.object_id = I.object_id
WHERE   OBJECTPROPERTY(s.[object_id], 'IsUserTable') = 1
        AND i.index_id = s.index_id
        AND s.database_id = DB_ID()
ORDER BY OBJECT_NAME(s.[object_id]) ,
        writes DESC ,
        reads DESC ;

'SQL SERVER' 카테고리의 다른 글

파티션(partition) 테이블 현황조회  (0) 2018.10.26
SSMS의 Tip  (0) 2018.10.26
알아봐요 할 DMV  (0) 2018.09.19
Troubleshooting transactional replication latency issues  (0) 2018.08.10
Replication Subscription Type 확인  (0) 2018.05.09
posted by bedbmsguru