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

インデックスタイプ

DB

Oracle Bツリービットマップ MySQL BTREE →InnoDB、MyISAM、MEMORYHASH →MEMORY ※適応型ハッシュインデックス→InnoDB テーブルの最適化として、メモリー内にハッシュインデックスを構築する CREATE TABLE tab31 (col1 int,col2 int) ENGINE = InnoDB;CREATE …

トランザクション分離レベル

DB

Oracle READ COMMITTED <==デフォルトSERIALIZABLE --セッションレベルSET TRANSACTION ISOLATION LEVEL READ COMMITTED;SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; MySQL READ UNCOMMITTEDREAD COMMITTEDREPEATABLE READ <==デフォルトSERIALIZABLE ht…

SSDキャッシュ拡張

DB

Oracle Smart Flash Cache データベースがSolarisまたはOracle Linuxオペレーティング・システムで実行されています。Database Smart Flash Cacheは、これらのオペレーティング・システムでのみサポートされます。 show parameter db_flash; alter system se…

カラムストアインデックス

DB

Oracle インメモリー列ストアがカラムストア構造 MySQL 未対応の模様 PostgreSQL cstore_fdw http://tech.gmo-media.jp/post/147773750479/cstore-fdw-review --前提(9.6)でソースコンパイル yum -y install gityum -y install protobuf-c-devel cd /usr/loc…

クラスタ化インデックス

DB

Oracle 索引構成表 CREATE TABLE admin_docindex( token char(20), doc_id NUMBER, token_frequency NUMBER, token_offsets VARCHAR2(2000), CONSTRAINT pk_admin_docindex PRIMARY KEY (token, doc_id)) ORGANIZATION INDEX TABLESPACE users PCTTHRESHOLD …

インメモリデータベース

DB

Oracle インメモリー列ストア(12cR1) alter system set INMEMORY_SIZE = 100M scope=spfile;shutdown immediate;startup SHOW PARAMETER INMEMORY_SIZE CREATE TABLE tab22 ( col1 NUMBER(5) PRIMARY KEY, col2 VARCHAR2(15))INMEMORY; MySQL CREATE TABLE t…

部分インデックス

DB

Oracle 12cR1からパーティションインデックスに対して実装 CREATE TABLE orders ( order_id NUMBER(12), order_date DATE CONSTRAINT order_date_nn NOT NULL, order_mode VARCHAR2(8), customer_id NUMBER(6) CONSTRAINT order_customer_id_nn NOT NULL, or…

関数インデックス

DB

Oracle create index f_ind11 on tab1(to_char(col1)); MySQL https://qiita.com/hmatsu47/items/128ece7276e4deac1477 (5.7)生成カラム(generated column) create table tab9( col1 int, col2 varchar(3), col3 varchar(4) as ( CONCAT(col2,'0'))); inse…

拡張統計

DB

Oracle BEGIN DBMS_STATS.GATHER_TABLE_STATS( 'test','tab2', METHOD_OPT => 'FOR COLUMNS (col1,col2)');END;/ BEGIN DBMS_STATS.GATHER_TABLE_STATS( 'test','tab2', METHOD_OPT => 'FOR COLUMNS (LOWER(col2))');END;/ SELECT * FROM USER_STAT_EXTENSIO…

遅延レプリケーション

DB

Oracle LOG_ARCHIVE_DEST_nパラメータの属性DELAY分で指定 注意: リアルタイム適用が使用可能になっている宛先に遅延を定義すると、その遅延は無視されます。次の段落に示すような遅延を定義する場合、「Redo Applyの開始」に示すように、USING ARCHIVED LOG…

フェールオーバー(自動)

DB

Oracle --1.Oracle Data Guard Brokerのインストール(node1,node2) show parameter dgshow parameter log; alter system set dg_broker_start=true scope=both sid='*'; ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='';ALTER SYSTEM SET LOG_ARCHIVE_DEST_1=''; --…

フェールオーバー(手動)

DB

Oracle ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;ALTER DATABASE FAILOVER TO stb;ALTER DATABASE OPEN; MySQL https://qiita.com/shotaTsuge/items/83e4387d6c8488677e17 (5.6) --現マスターで実施SHOW PROCESSLIST;FLUSH TABLES WITH READ…

スイッチオーバー

DB

Oracle --スイッチオーバできるか確認(node1)select switchover_status from v$database; --スイッチオーバー(node1)alter database commit to switchover to physical standby with session shutdown;startup mount;select name, db_unique_name, open_mode…

レプリケーション一時停止

DB

Oracle --停止ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; --再開ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION; MySQL STOP SLAVE; STOP SLAVE IO_THREAD;STOP SLAVE SQL_THREAD; show slave status \G START SL…

ギャップ確認

DB

Oracle select thread#,low_sequence#,high_sequence# from v$archive_gap; MySQL --マスターステータス確認[マスターで実施]show master status\G --レプリケーションステータス確認[スレーブで実施]show slave status\G Positionの値とスレーブサーバのRea…

レプリケーション設定

DB

Oracle --------------------ファイルコピーによる方法-------------------- (12cR1)--非同期フィジカル・スタンバイ --前提プライマリ:インストールとDB作成を実施セカンダリ:インストールを実施 --1.強制ロギングの有効化[プライマリで実施]select force…

リソースマネージャ

DB

Oracle BEGIN DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA();END;/ BEGIN DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP ( CONSUMER_GROUP => 'CG1', COMMENT => 'test');END;/ BEGIN DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING( ATTRIBUTE => DBMS_…

SQL計画管理

DB

Oracle SHOW PARAMETER SQL_PLANALTER SYSTEM SET OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES=true; SELECT SQL_HANDLE, SQL_TEXT, PLAN_NAME, ORIGIN, ENABLED, ACCEPTEDFROM DBA_SQL_PLAN_BASELINES; MySQL 未対応の模様 PostgreSQL 未対応の模様 ※Auroraの場…

ベンチマークツール

DB

Oracle SET SERVEROUTPUT ONDECLARE lat INTEGER; iops INTEGER; mbps INTEGER;BEGIN-- DBMS_RESOURCE_MANAGER.CALIBRATE_IO (<DISKS>, <MAX_LATENCY>, iops, mbps, lat); DBMS_RESOURCE_MANAGER.CALIBRATE_IO (2, 10, iops, mbps, lat); DBMS_OUTPUT.PUT_LINE ('max_iops = ' ||</max_latency></disks>…

キャッシュウォームアップ

DB

Oracle 調べた限りない。キャッシュに残りやすくするKEEPプールがある show parameter cache_sizealter system set DB_KEEP_CACHE_SIZE=30M; alter table test.tab1 storage(buffer_pool keep) ; --(12cR2)インメモリDBについては、IMファスト・スタートによ…

ループ処理

DB

Oracle set serveroutput on size 1000000 declarer_tab2 tab99%rowtype;beginfor i in 1..1000 loop select * into r_tab2 from tab99 where rownum = 1; insert into tab1 values(r_tab2.col1); commit;end loop; exception when others then dbms_output.…

パラレル実行

DB

Oracle --ヒント句select /*+ parallel(2) */A.*from tab1 A inner join tab1 Bon A.col1 = B.col1; --セッション変更ALTER SESSION FORCE PARALLEL QUERY;select A.*from tab1 A inner join tab1 Bon A.col1 = B.col1; --テーブル定義create table tab21(co…

パーティションテーブル

DB

Oracle --レンジCREATE TABLE range ( prod_id NUMBER(6) , cust_id NUMBER , time_id DATE , channel_id CHAR(1) , promo_id NUMBER(6) , quantity_sold NUMBER(3) , amount_sold NUMBER(10,2) ) PARTITION BY RANGE (time_id) ( PARTITION p1 VALUES LESS …

ヒント句

DB

Oracle select /*+ USE_NL(A B) */A.*from tab1 A inner join tab1 Bon A.col1 = B.col1; select /*+ USE_MERGE(A B) */A.*from tab1 A inner join tab1 Bon A.col1 = B.col1; select /*+ USE_HASH(A B) */A.*from tab1 A inner join tab1 Bon A.col1 = B.co…

ロック確認

DB

Oracle (19c) select sid,type,lmode,request,ctime from v$lock where type in ('TX','TM'); select * from v$locked_object; select * from dba_objects where object_id = 20391; selectt1.sid,t1.serial#,t1.username,t1.osuser,t1.status,t1.machine,t1…

オプティマイザトレース

DB

Oracle http://www.undercoverlog.com/entry/2018/07/19/Oracle_CBO%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B9%2810053%29%E3%81%AE%E5%8F%96%E5%BE%97 alter system flush shared_pool;alter session set TRACEFILE_IDENTIFIER = 'trace2';alter session set ev…

SQLトレース

DB

Oracle (19c) alter session set TRACEFILE_IDENTIFIER = 'trace1'; alter session set timed_statistics = true; alter session set events '10046 trace name context forever, level 12';select * from tab1;alter session set events '10046 trace name …

パフォーマンスレポート作成

DB

Oracle @$ORACLE_HOME/rdbms/admin/awrrpt.sql MySQL MySQL Workbench wget https://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-workbench-community-8.0.13-1.el7.x86_64.rpm rpm -ivh mysql-workbench-community-8.0.13-1.el7.x86_64.rpm yum insta…

稼動統計情報確認

DB

Oracle select * from V$SYSSTAT; select * from V$MYSTAT; select * from V$STATNAME; MySQL --商用版の場合、MySQL Enterprise MonitorとQuery Analyzerが使用可能 SHOW WARNINGS\GSHOW ERRORS\G show global status;show session status; ステータス変数…