2019-03-01から1ヶ月間の記事一覧

プランナ統計情報取得しきい値

DB

Oracle デフォルトは10% select dbms_stats.get_prefs('STALE_PERCENT') from dual; exec DBMS_STATS.SET_GLOBAL_PREFS('STALE_PERCENT','20'); MySQL 行の 10% 変更はできない模様 PostgreSQL --グローバルレベルvim postgresql.conf-- タプル最小数(デフォ…

プランナ統計情報サンプリング数

DB

Oracle デフォルトはOracleが決定 select dbms_stats.get_prefs('ESTIMATE_PERCENT') from dual; exec DBMS_STATS.SET_GLOBAL_PREFS('ESTIMATE_PERCENT','10'); MySQL https://dev.mysql.com/doc/refman/5.6/ja/innodb-persistent-stats.html --グローバルレ…

プランナ統計情報移行

DB

Oracle exec dbms_stats.create_stat_table('TEST','STATTAB1'); exec dbms_stats.export_table_stats(ownname => 'TEST',tabname => 'TAB1', stattab => 'STATTAB1'); expdp test/test directory=ORA_DIR dumpfile=stattab1.dmp logfile=stattab1.exp.log t…

プランナ統計情報固定

DB

Oracle exec dbms_stats.lock_table_stats('TEST','TAB1');exec dbms_stats.unlock_table_stats('TEST','TAB1'); MySQL show variables like 'innodb_stats%'; alter table tab6 STATS_AUTO_RECALC=0; PostgreSQL http://pgdbmsstats.osdn.jp/pg_dbms_stats-…

プランナ統計情報確認

DB

Oracle select * from all_tab_statistics where OWNER = 'TEST' and TABLE_NAME = 'TAB1';select * from all_ind_statistics where OWNER = 'TEST' and TABLE_NAME = 'TAB1'; select * from all_TAB_COL_STATISTICS where OWNER = 'TEST' and TABLE_NAME = …

プランナ統計情報取得

DB

Oracle exec dbms_stats.gather_table_stats('TEST','TAB1'); MySQL analyze table tab6; PostgreSQL analyze verbose tab1; SQL Server ※インデックスがない場合、統計情報は取得されない --データベース内の全テーブルUSE test; GO EXEC sp_updatestats; g…

実行計画確認

DB

MySQL explain select * from tab1 where col1=2\G PREPARE stmt2 FROM 'explain SELECT * from tab6 where col1=? and col1=?';SET @a = 2;SET @b = 2;EXECUTE stmt2 USING @a,@b\GDEALLOCATE PREPARE stmt2; --オプティマイザによるリライト後のSQL表示exp…

バインド変数設定

DB

Oracle variable val1 varchar2(100)execute :val1 := '123' print :val1 select * from tab1 where col1 = :val1; MySQL PREPARE stmt1 FROM 'SELECT * from tab1 where col1=?';SET @a = 2;EXECUTE stmt1 USING @a;DEALLOCATE PREPARE stmt1; PostgreSQL h…

ロングトランザクション確認

DB

Oracle alter session set nls_date_format='yyyy/mm/dd hh24:mi:ss'; selectSID,SERIAL#,STATUS,SQL_ID,SQL_EXEC_START,PREV_SQL_ID,PREV_EXEC_START,LOGON_TIMEfrom v$sessionorder by LOGON_TIME; MySQL select * from information_schema.INNODB_TRX ord…

スロークエリ確認

DB

Oracle SELECTsql_id,sql_fulltext,elapsed_time,executions,elapsed_time/executions/1000000FROM v$sqlstatsWHERE executions > 0ORDER BY elapsed_time/executions/1000000 ; SELECTsql_id,ELAPSED_TIME_TOTAL,EXECUTIONS_TOTAL,ELAPSED_TIME_TOTAL/EXECU…

再編成

DB

Oracle alter table tab1 move;alter index ind1 rebuild online; ※move実行によりインデックス無効となるため、リビルド必要※move onlineであればインデックスは無効にならない模様 alter table tab1 enable row movement;alter table tab1 shrink space; M…

ユーザ変数

DB

Oracle define def1 = 123defineundefine def1 select * from tab1 where col1 = &def1; MySQL http://macotasu.hatenablog.jp/entry/2015/05/14/222223 CREATE TABLE `user_point` ( `user_id` int(11) DEFAULT NULL, `point` int(11) DEFAULT NULL) ENGINE…

メモリフラッシュ

DB

Oracle alter system flush shared_pool;alter system flush buffer_cache; MySQL SHOW STATUS LIKE 'Qcache%';RESET QUERY CACHE; SHOW STATUS LIKE 'open_tables';flush tables; PostgreSQL 方法はない模様 SQL Server use mastergo DBCC FREESYSTEMCACHE …

自セッションID確認

DB

Oracle select sys_context('userenv','sid') from dual; select * from v$session where sid = sys_context('userenv','sid'); select sid from v$mystat where rownum = 1; MySQL (8.0.22)select connection_id(); select ps_current_thread_id(); select …

ログ解析ツール

DB

Oracle ない模様 MySQL --mysqldumpslow--Parse and summarize the MySQL slow query log -s al → 平均ロックタイムの長い順-s ar → 平均行数の多い順-s at → 平均実行時間の長い順-s c → 総クエリ数の多い順-s l → 総ロックタイムの長い順-s r → 総行数の多…

圧縮

DB

Oracle CREATE TABLE tab11(col1 int) ROW STORE COMPRESS BASIC;CREATE TABLE tab12(col1 int) ROW STORE COMPRESS ADVANCED; MySQL (5.6)SET GLOBAL innodb_file_per_table=1;SET GLOBAL innodb_file_format=Barracuda;ALTER TABLE tab2 ROW_FORMAT=COMPRE…

監査

DB

Oracle CREATE AUDIT POLICY pol1 PRIVILEGES SELECT ANY TABLE, CREATE LIBRARY; CREATE AUDIT POLICY pol2 PRIVILEGES DROP ANY TABLE, DROP ANY CONTEXT, DROP ANY INDEX, DROP ANY LIBRARY; AUDIT POLICY pol2 BY test; CREATE AUDIT POLICY pol3 ACTION…

暗号化

DB

Oracle vim sqlnet.ora ENCRYPTION_WALLET_LOCATION= (SOURCE= (METHOD=FILE) (METHOD_DATA= (DIRECTORY=/u01/app/oracle/oradata/orcl))) ADMINISTER KEY MANAGEMENT CREATE KEYSTORE '/u01/app/oracle/oradata/orcl' IDENTIFIED BY oracle; ADMINISTER KEY…

データベースリンク

DB

Oracle create database link dblink1 connect to test identified by test using 'orcl'; select * from dba_db_links; select * from v$instance@dblink1; MySQL https://qiita.com/shigekid/items/a087cdd5d0c074859688 vim /etc/my.cnf [mysqld]federate…

外部表

DB

Oracle vim tab3.datAlvin,Tolliver,1976Kenneth,Baer,1963Mary,Dube,1973 drop table tab3;CREATE TABLE tab3 (first_name CHAR(15), last_name CHAR(20), year_of_birth CHAR(4)) ORGANIZATION EXTERNAL (TYPE ORACLE_LOADER DEFAULT DIRECTORY ORA_DIR AC…

csvデータロード

DB

Oracle vim tab2.dat396,ty4922,beth vim tab2.ctlload datainfile 'tab2.dat' "str '\n'"into table tab2fields terminated by ',' optionally enclosed by '"'(col1 char(5), col2 char(7)) create table tab2(col1 char(5),col2 char(7)); sqlldr test/te…

エクスポート/インポート

DB

Oracle create directory ORA_DIR as '/home/oracle';grant all on directory ORA_DIR to public; expdp test/test directory=ORA_DIR dumpfile=tab1.dmp logfile=tab1.exp.log tables=tab1 drop table tab1 purge; impdp test/test directory=ORA_DIR dumpf…

セッションkill

DB

Oracle select * from v$session;select SID,SERIAL#,schemaname,status from v$session; alter system kill session '44,20184'; MySQL show processlist;show full processlist; select * from performance_schema.threads; kill 16; PostgreSQL select * …

リストア(完全、不完全)

DB

Oracle --完全rman target /restore database;recover database;alter database open; --不完全 rman target /restore database until scn 578046;recover database until scn 578046;alter database open resetlogs; MySQL http://www.techscore.com/blog/2…

バックアップ

DB

Oracle rman target / list backup; backup database plus archivelog; MySQL show binary logs; mysqldump -u root test -p --quick --master-data=2 --flush-logs --single-transaction --triggers --routines --events > bkup11.dmp mysqldump -u user1 -…

ログ確認

DB

Oracle select * from v$diag_info; cd /u01/app/oracle/diag/rdbms/orcl/orcl/tracecat alert_orcl.log MySQL show variables like '%log%';show variables like 'long_query_time'; vim /etc/my.cnf ・一般クエリの実行ログ(General query log) general_…

アーカイブログ

DB

Oracle mkdir -p /u01/app/oracle/oradata/orcl archive log list alter system set log_archive_dest_1='location=/u01/app/oracle/oradata/orcl' scope=spfile; shutdown immediatestartup mountalter database archivelog;alter database open; archive l…

シングルユーザモード

DB

Oracle shutdown immediatestartup restrict ※ハング時の接続(oradebug実行用、SQLの実行は不可) sqlplus /nologset _prelim onconn / as sysdba -- シングルの場合oradebug hanganalyze 3 oradebug setmypidoradebug dump systemstate 266 -- RACの場合orad…