sp_updatestats

'Develop > DB - mssql' 카테고리의 다른 글

대기 상태에 있는 wait, spid 확인  (0) 2021.03.31
백업 및 백업모델 조회  (0) 2021.03.31
UPDATE STATS_STEP1_INDEX REORG  (0) 2021.03.30
세션상태 조회  (0) 2021.03.30
실행계획 결과화면에서 텍스트로 보기  (0) 2020.10.08

IF OBJECT_ID('tempdb..#temp_index_rebuild') IS NOT NULL 
        DROP TABLE tempdb..#temp_index_rebuild

BEGIN TRY
--BEGIN TRAN

use DB명

    SET NOCOUNT ON;

    DECLARE @objectid INT;
    DECLARE @indexid INT;
    DECLARE @partitioncount BIGINT;
    DECLARE @schemaname NVARCHAR(130);
    DECLARE @objectname NVARCHAR(130);
    DECLARE @indexname NVARCHAR(130);
    DECLARE @partitionnum BIGINT;
    DECLARE @partitions BIGINT;
    DECLARE @frag FLOAT;
    DECLARE @pagecount INT;
    DECLARE @command NVARCHAR(4000);

    DECLARE @page_count_minimum SMALLINT
    SET @page_count_minimum = 10

    DECLARE @fragmentation_minimum FLOAT
    SET @fragmentation_minimum = 30.0

    SELECT  object_id AS objectid ,
            index_id AS indexid ,
            partition_number AS partitionnum ,
            avg_fragmentation_in_percent AS frag ,
            page_count AS page_count
    INTO    #temp_index_rebuild
    FROM    sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL,
                                           'LIMITED')
    WHERE   avg_fragmentation_in_percent > @fragmentation_minimum
            AND index_id > 0
            AND page_count > @page_count_minimum;

IF CURSOR_STATUS('global', 'partitions') >= -1
BEGIN
 PRINT 'partitions CURSOR DELETED' ;
    CLOSE partitions
    DEALLOCATE partitions
END
    DECLARE partitions CURSOR LOCAL
    FOR
        SELECT  *
        FROM    #temp_index_rebuild;

    OPEN partitions;

    WHILE ( 1 = 1 )
        BEGIN;
            FETCH NEXT
FROM partitions
INTO @objectid, @indexid, @partitionnum, @frag, @pagecount;

            IF @@FETCH_STATUS < 0
                BREAK;

            SELECT  @objectname = QUOTENAME(o.name) ,
                    @schemaname = QUOTENAME(s.name)
            FROM    sys.objects AS o
                    JOIN sys.schemas AS s ON s.schema_id = o.schema_id
            WHERE   o.object_id = @objectid;

            SELECT  @indexname = QUOTENAME(name)
            FROM    sys.indexes
            WHERE   object_id = @objectid
                    AND index_id = @indexid;

            SELECT  @partitioncount = COUNT(*)
            FROM    sys.partitions
            WHERE   object_id = @objectid
                    AND index_id = @indexid;

            SET @command = N'ALTER INDEX ' + @indexname + N' ON '
                + @schemaname + N'.' + @objectname + N' REBUILD';

            IF @partitioncount > 1
                SET @command = @command + N' PARTITION='
                    + CAST(@partitionnum AS NVARCHAR(10));

            EXEC (@command);
            --print (@command); --uncomment for testing

            PRINT N'Rebuilding index ' + @indexname + ' on table '
                + @objectname;
            PRINT N'  Fragmentation: ' + CAST(@frag AS VARCHAR(15));
            PRINT N'  Page Count:    ' + CAST(@pagecount AS VARCHAR(15));
            PRINT N' ';
        END;

    CLOSE partitions;
    DEALLOCATE partitions;

    DROP TABLE #temp_index_rebuild;

END TRY
BEGIN CATCH
    PRINT 'ERROR ENCOUNTERED:' + ERROR_MESSAGE()
END CATCH

'Develop > DB - mssql' 카테고리의 다른 글

백업 및 백업모델 조회  (0) 2021.03.31
통계정보 업데이트  (0) 2021.03.30
세션상태 조회  (0) 2021.03.30
실행계획 결과화면에서 텍스트로 보기  (0) 2020.10.08
table 조각모음  (0) 2020.07.03

SELECT P.spid, P.login_time, P.last_batch, P.status, P.program_name, P.cmd, C.client_net_address
   FROM sys.sysprocesses AS P INNER JOIN sys.dm_exec_connections AS C
   ON P.spid = C.session_id

'Develop > DB - mssql' 카테고리의 다른 글

통계정보 업데이트  (0) 2021.03.30
UPDATE STATS_STEP1_INDEX REORG  (0) 2021.03.30
실행계획 결과화면에서 텍스트로 보기  (0) 2020.10.08
table 조각모음  (0) 2020.07.03
작업 스케줄러 일일체크 쿼리  (0) 2020.06.15

1. MariaDB 설치

 - 웹사이트 접속 다운로드 https://mariadb.org/download/ 10.1.26

 

2. my.conf 파일 복사

 - Master 파일 복사 후 Slave 서버로 붙여넣기 Slave 서버 server_id=3 / read_only / 

 

3. 계정생성

 - create user 'repl'@'203.***.***.slave' identified by 'repl'; grant replication slave on *.* to 'repl'@'203.***.***.master';  flush privileges; 

 

4. mysql dump 뜨기

 - mysql dump  mysqldump -u root -p --single-transaction --master-data=2 --extended-insert=1 --all-databases>파일명_repl.sql

 

5. dump 파일 이동 

 - dump 파일 이동 Master 서버에서 Slave 서버로 이동 pscp -P 1022 admin@203.***.***.master:/admin/20200208_repl.sql C:\Users\user\Downloads winSCP 로 Slave 서버로 이동

 

6. 파라미터 변경

 - mysql> set global open_files_limit=5000 7. DB restore  mysql> source 파일명.sql

 

8. Slave DB 셋팅 및 연결

 - CHANGE MASTER TO MASTER_HOST='203.***.***.master', MASTER_USER='repl', MASTER_PASSWORD='repl', MASTER_PORT=13306  MASTER_LOG_FILE='mysql-bin.000001', -- dump파일에서 확인 가능 MASTER_LOG_POS=1424 ;

9. 슬레이브 replication start

 - mysql> start slave\G;

 

10. Master & slave 상태확인

 - mysql> show slave status;

MariaDB [information_schema]> show slave status\G *************************** 1. row ***************************                Slave_IO_State: Waiting for master to send event                   Master_Host: 203.***.***.master                   Master_User: repl                   Master_Port: ****                 Connect_Retry: 60               Master_Log_File: mysql-bin.000196           Read_Master_Log_Pos: 9920425                Relay_Log_File: bizboxa_relaylog.000002                 Relay_Log_Pos: 8838360         Relay_Master_Log_File: mysql-bin.000196              Slave_IO_Running: Yes             Slave_SQL_Running: Yes

mysql> show master status;

'Develop > DB - mysql' 카테고리의 다른 글

MYSQL DB SIZE 조회  (0) 2020.07.17
mariaDB process kill  (0) 2020.06.15
Lock 매커니즘  (0) 2020.02.02

SET STATISTICS PROFILE ON

SET STATISTICS IO ON

'Develop > DB - mssql' 카테고리의 다른 글

UPDATE STATS_STEP1_INDEX REORG  (0) 2021.03.30
세션상태 조회  (0) 2021.03.30
table 조각모음  (0) 2020.07.03
작업 스케줄러 일일체크 쿼리  (0) 2020.06.15
Index 조회 쿼리  (0) 2020.06.15

SELECT table_schema "DB Name", ROUND(SUM(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB" FROM information_schema.tables GROUP BY table_schema;

'Develop > DB - mysql' 카테고리의 다른 글

MariaDB Master - Slave 간 Replication 구성  (0) 2021.02.18
mariaDB process kill  (0) 2020.06.15
Lock 매커니즘  (0) 2020.02.02

DBCC ShowContig('test_table')

DBCC SHOWCONTIG이(가) ' test_table ' 테이블을 스캔하는 중...
테이블: 'nexen' (677577452); 인덱스 ID: 1, 데이터베이스 ID: 5
TABLE 수준 스캔이 수행되었습니다.
- 스캔한 페이지................................: 100
- 스캔한 익스텐트..............................: 17
- 전환된 익스텐트..............................: 16
- 익스텐트 당 평균 페이지 수........................: 5.9
- 스캔 밀도[최적:실제].......: 76.47% [13:17]
- 논리 스캔 조각화 상태 ..................: 0.00%
- 익스텐트 스캔 조각화 상태 ...................: 82.35%
- 페이지 당 사용 가능한 평균 바이트 수.....................: 138.6
- 평균 페이지 밀도(전체).....................: 98.29%
DBCC 실행이 완료되었습니다. DBCC에서 오류 메시지를 출력하면 시스템 관리자에게 문의하십시오.

항목 설명
스캔한 페이지 1페이지 = 8KB 이므로 스캔한 페이지는 800KB
스캔한 익스텐트 익스텐트 = 1페이지 * 8 이므로 17 * 8KB * 8 = 1088 KB
전환된 익스텐트 익스텐트를 스캔하면서 익스텐트와 익스텐트 사이를 옮겨간 횟수를 의미.
익스텐트 당 평균 페이지 수 하나의 익스텐트는 8개의 페이지라고 볼 수 있는데 익스텐트가 조각나서 하나의 익스텐트에 평균 5.9개의 페이지가 있는 것. 8에 가까워야 좋음
 wh스캔밀도 스캔밀도가 100% 이면 조각난 상태가 아니며 100% 미만이면 그 만큼 조각난 상태. 그러므로 위의 경우 약 25%가 조각난 상태라고 볼 수 있다.
논리 스캔 조각화 상태 논리적인 조각화 상태를 의미합니다. 삽입, 갱신 등의 DML문에 의해서 인덱스의 트리구조가 전환된 것을 의미.
익스텐트 스캔 조각화 상태 인덱스의 잎 페이지 스캔에서 순서가 바뀐 익스텐트의 비율.
페이지 당 사용 가능한 평균 바이트 수 하나의 페이지는 최대 8060바이트가 저장될 수 있다. 이것은 페이지들이 사용할 수 있는 가용 페이지의 공간을 의미. 이 값이 클수록 페이지의 채우기 비율이 낮으므로 값이 작을수록 좋다. 이 값은 행 크기에 따라 달라지며 행 크기가 크면 값이 커진다.
평균 페이지 밀도(전체) 스캔한 페이지의 조각화 상태. 100%이면 조각난 상태가 아니며, 100% 미만이면 조각난 상태. 100%에 가까울 수록 좋다.

'Develop > DB - mssql' 카테고리의 다른 글

세션상태 조회  (0) 2021.03.30
실행계획 결과화면에서 텍스트로 보기  (0) 2020.10.08
작업 스케줄러 일일체크 쿼리  (0) 2020.06.15
Index 조회 쿼리  (0) 2020.06.15
DB 조각모음  (0) 2020.05.18



'Develop > DB - mssql' 카테고리의 다른 글

실행계획 결과화면에서 텍스트로 보기  (0) 2020.10.08
table 조각모음  (0) 2020.07.03
Index 조회 쿼리  (0) 2020.06.15
DB 조각모음  (0) 2020.05.18
mssql 계정 비밀번호 변경  (0) 2018.05.29


'Develop > DB - mysql' 카테고리의 다른 글

MariaDB Master - Slave 간 Replication 구성  (0) 2021.02.18
MYSQL DB SIZE 조회  (0) 2020.07.17
Lock 매커니즘  (0) 2020.02.02

+ Recent posts