728x90

-- purge 명령어로 binlog 삭제 

purge binary logs to 'mysql-bin.000025';

PURGE BINARY LOGS BEFORE '2025-02-01 00:00:00';

 

-- binlog 보관주기 확인
show global variables like 'expire_logs_days';
set global expire_logs_days=3;
flush privileges;

-- 삭제 안 될시 warnings 확인 
MariaDB [(none)]> show warnings\G
*************************** 1. row ***************************
  Level: Note
   Code: 1375
Message: Binary log 'mysql-bin.000001' is not purged because it is the current active binlog
1 row in set (0.000 sec)

-- slave_connections_needed_for_purge 설정 확인 
show global variables like 'slave_connections_needed_for_purge';
set global slave_connections_needed_for_purge=0;

728x90

'MYSQL' 카테고리의 다른 글

[MariaDB] 계정 비밀번호 복잡도 변경  (0) 2024.12.27
[MariaDB] 통계수집  (0) 2024.12.27
view 전체 쿼리 확인  (0) 2024.09.10
Mysql Object 조회  (0) 2024.06.27
ERROR 1064 (42000)  (1) 2024.06.27
728x90

MSSQL UI로 하려다 안 되서 명령어로 간단하게

 

alter login "계정명" with password='비번' MUST_CHANGE, CHECK_EXPIRATION = ON;

728x90
728x90

-- 에러 코드도 없이 수행이 안 되는 경우

-- 유지관리계획 우클릭 --> 기록 보기 --> SQL Server 에이전트 확인

 

 

-- 서버 admin 계정명을 변경하여 MSSQL 내부의 OS admin 사용자명도 변경해야 함.

-- 보안 --> 로그인 --> hostname\admin계정명 확인!!

728x90
728x90

simple_password_check_digits : value 값 이상의 숫자 포함    
simple_password_check_letters_same_case : value 값 이상의 대문자 포함  
simple_password_check_minimal_length : value 값 이상의 패스워드 길이    
simple_password_check_other_characters  : value 값 이상의 특수문자 포함

 

-- 계정 비밀번호 복잡도 조회 쿼리
MariaDB [(none)]> show global variables like 'simple_password%';
+-----------------------------------------+-------+
| Variable_name                           | Value |
+-----------------------------------------+-------+
| simple_password_check_digits            | 1     |
| simple_password_check_letters_same_case | 1     |
| simple_password_check_minimal_length    | 8     |
| simple_password_check_other_characters  | 1     |
+-----------------------------------------+-------+
4 rows in set (0.001 sec)

 

-- 설정값 변경 명령어 
MariaDB [(none)]> set global simple_password_check_letters_same_case = 1;

 

-- 재기동 후에도 변경이 안 되게 하려면 my.cnf파일에도 설정해야함!!

728x90

'MYSQL' 카테고리의 다른 글

MariaDB binlog 삭제 안 되는 경우  (0) 2025.02.04
[MariaDB] 통계수집  (0) 2024.12.27
view 전체 쿼리 확인  (0) 2024.09.10
Mysql Object 조회  (0) 2024.06.27
ERROR 1064 (42000)  (1) 2024.06.27
728x90

--  테이블 통계 확인 쿼리

MariaDB []> select * from mysql.innodb_table_stats;

 

--  인덱스 통계 확인 쿼리
MariaDB []> select * from mysql.innodb_index_stats;

 

-- 전체 데이터베이스 통계수집
mysqlcheck -a --all-databases

 

-- 특정 테이블 통계 수집
optimize table table_name;

728x90

'MYSQL' 카테고리의 다른 글

MariaDB binlog 삭제 안 되는 경우  (0) 2025.02.04
[MariaDB] 계정 비밀번호 복잡도 변경  (0) 2024.12.27
view 전체 쿼리 확인  (0) 2024.09.10
Mysql Object 조회  (0) 2024.06.27
ERROR 1064 (42000)  (1) 2024.06.27
728x90

SELECT MAX( parsing_schema_name ) parsing_schema_name ,

MAX( MODULE ) MODULE ,

MAX( s.sql_id ) sql_id ,

COUNT( s.exact_matching_signature ) literal_sql_cnt ,

ROUND( SUM( buffer_gets ) /sum( s.executions ) , 2 ) buffer_avg ,

ROUND( SUM( elapsed_time )/1000000 /sum( s.executions ) , 2 ) elapsed_avg ,

ROUND( SUM( rows_processed ) /sum( s.executions ) , 2 ) rows_processed ,

SUM( s.executions ) executions ,

ROUND( SUM( cpu_time ) /max( cpu_time_total ) *100 , 2 ) ratio_cpu ,

ROUND( SUM( elapsed_time ) /max( elapsed_time_total ) *100 , 2 ) ratio_elapsed ,

COUNT( DISTINCT s.plan_hash_value ) plan_cnt ,

substr_sqltext sql_text

FROM (

SELECT s.parsing_schema_name ,

s.module ,

s.sql_id ,

s.hash_value ,

s.plan_hash_value ,

s.address ,

s.sql_text substr_sqltext,

s.executions ,

s.buffer_gets ,

s.disk_reads ,

s.rows_processed ,

s.cpu_time ,

s.elapsed_time ,

s.force_matching_signature ,

s.exact_matching_signature ,

ROUND( (s.buffer_gets / s.executions) , 1 ) lio ,

ROUND( (s.elapsed_time / s.executions) /1000000 , 1 ) elapsed_sec ,

ROUND( (s.cpu_time / s.executions) /1000000 , 1 ) cpu_sec ,

SUM( s.cpu_time ) over( ) cpu_time_total ,

SUM( s.elapsed_time ) over( ) elapsed_time_total

FROM v$sqlarea s

where s.executions > 0

) s

WHERE s.executions > 0

AND s.force_matching_signature <> exact_matching_signature

AND s. parsing_schema_name NOT IN ( 'SYS' , 'SYSTEM' , 'SYSMAN' )

GROUP BY s.force_matching_signature, substr_sqltext

HAVING COUNT( s.exact_matching_signature ) >= 2

ORDER BY literal_sql_cnt DESC

728x90
728x90

-- 인덱스 조각화 정보
SELECT a.object_id
, [Table Name] = object_name(a.object_id)
, a.index_id
, [Index Name] = b.name
, avg_page_space_used_in_percent
, avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats(
DB_ID (N'db_srm')
, NULL     -- 스키마 네임은 빼고 순수 테이블명만 넣기
, NULL
, NULL
, 'SAMPLED'
) AS a
INNER JOIN sys.indexes AS b
ON a.object_id = b.object_id
AND a.index_id = b.index_id

 

-- 전체 테이블 인덱스 REINDEX

EXEC Sp_msforeachtable
  @command1="print '?' DBCC DBREINDEX ('?', '', 90)"

 

-- 일부 테이블 인덱스 REINDEX

DBCC DBREINDEX ('table_name', '', 90)

728x90
728x90

-- 10프로 이상 파편화된 인덱스 REBUILD 명령어 추출 쿼리
SELECT a.object_id
, [Table Name] = object_name(a.object_id)
, a.index_id
, [Index Name] = b.name
, avg_page_space_used_in_percent
, avg_fragmentation_in_percent
, [query] = 'ALTER INDEX ALL ON ' + CONVERT (varchar, object_name(a.object_id)) + ' REBUILD WITH (FILLFACTOR = 90);'
FROM sys.dm_db_index_physical_stats(
 NULL
, NULL    
, NULL
, NULL
, 'SAMPLED'
) AS a
INNER JOIN sys.indexes AS b
ON a.object_id = b.object_id
AND a.index_id = b.index_id
where avg_fragmentation_in_percent > 10

728x90

'MSSQL' 카테고리의 다른 글

[MSSQL] 유지관리계획 수행이 안 되는 경우  (1) 2025.01.03
[MSSQL] 인덱스 파편화 정보, REINDEX  (0) 2024.12.27
[MSSQL] 인덱스 조회 및 누락된 인덱스 확인  (0) 2024.12.27
LOCK  (0) 2023.10.27
SQL 실행 이력 조회  (0) 2023.05.16
728x90

-- 각 테이블 인덱스 현황

SELECT a.name      AS table_name
     , b.name      AS index_name
     , d.name      AS column_name
     , b.type_desc AS index_type
  FROM sys.tables a
     , sys.indexes b
     , sys.index_columns c
     , sys.columns d
 WHERE a.object_id = b.object_id 
   AND b.object_id = c.object_id 
   AND b.index_id  = c.index_id 
   AND c.object_id = d.object_id 
   AND c.column_id = d.column_id

 

-- 현재 데이터베이스에 누락된 인덱스 제안

SELECT
  CONVERT (varchar(30), getdate(), 126) AS runtime,  mig.index_group_handle,  mid.index_handle,
  CONVERT (decimal (28, 1), migs.avg_total_user_cost * migs.avg_user_impact * (migs.user_seeks + migs.user_scans) ) AS improvement_measure,
  'CREATE INDEX EX_' + CONVERT (varchar, mig.index_group_handle) + '_' + CONVERT (varchar, mid.index_handle) + ' ON ' + mid.statement + ' (' + ISNULL (mid.equality_columns, '') + CASE
    WHEN mid.equality_columns IS NOT NULL
    AND mid.inequality_columns IS NOT NULL THEN ','
    ELSE ''
  END + ISNULL (mid.inequality_columns, '') + ')' + ISNULL (' INCLUDE (' + mid.included_columns + ')', '') AS create_index_statement,
  migs.*, mid.database_id, mid.[object_id]
FROM sys.dm_db_missing_index_groups mig
INNER JOIN sys.dm_db_missing_index_group_stats migs ON migs.group_handle = mig.index_group_handle
INNER JOIN sys.dm_db_missing_index_details mid ON mig.index_handle = mid.index_handle
WHERE CONVERT (decimal (28, 1),migs.avg_total_user_cost * migs.avg_user_impact * (migs.user_seeks + migs.user_scans)) > 10
ORDER BY migs.avg_total_user_cost * migs.avg_user_impact * (migs.user_seeks + migs.user_scans) DESC

728x90

'MSSQL' 카테고리의 다른 글

[MSSQL] 인덱스 파편화 정보, REINDEX  (0) 2024.12.27
[MSSQL] 인덱스 파편화, REBUILD 명령어 추출 쿼리  (0) 2024.12.27
LOCK  (0) 2023.10.27
SQL 실행 이력 조회  (0) 2023.05.16
VERSION  (0) 2023.05.12
728x90

select view_definition from information_schema.view
where table_name = 'view_name';

728x90

'MYSQL' 카테고리의 다른 글

[MariaDB] 계정 비밀번호 복잡도 변경  (0) 2024.12.27
[MariaDB] 통계수집  (0) 2024.12.27
Mysql Object 조회  (0) 2024.06.27
ERROR 1064 (42000)  (1) 2024.06.27
ERROR 1143  (0) 2024.06.24

+ Recent posts