2019-05-06から1日間の記事一覧

リコンパイル

DB

Oracle create or replace procedure proc1 asbegin null;end;/ alter procedure proc1 compile; MySQL 明示的にコンパイルするコマンドは調べた限り見つからない PostgreSQL 明示的にコンパイルするコマンドは調べた限り見つからない SQL Server Customer …

フラッシュバック

DB

Oracle SELECT OLDEST_FLASHBACK_SCN, OLDEST_FLASHBACK_TIMEFROM V$FLASHBACK_DATABASE_LOG; shutdown immediate;startup mount;FLASHBACK DATABASE TO SCN 1784574;alter database open resetlogs; MySQL 未対応の模様 ※MariaDB 10.2.4の場合、mysqlbinlog…

動的SQL

DB

Oracle declare tabname varchar2(100);begin tabname := 'tab98'; execute immediate 'create table '||tabname||'(col1 int)';end;/ MySQL https://qiita.com/hand10ryo/items/6f7c9669ba8870cb16a9https://gene.hatenablog.com/entry/20100608/1275994173…

類似テーブル作成

DB

Oracle (12R2)create table tab2 for exchange with table tab1; MySQL create table tab111 like tab1; PostgreSQL create table tab111( like tab1); SQL Server 調べた限りない模様

アプリケーション名のセット

DB

Oracle select SID,SERIAL#,USERNAME,CLIENT_IDENTIFIER from v$session; exec dbms_session.set_identifier('application1'); MySQL 調べた限りない模様 PostgreSQL show application_name;set application_name to 'test'; セットしたアプリケーション名は…

データブロック確認

DB

Oracle https://taityo-diary.hatenablog.jp/entry/2015/08/17/170644 create table tab23(col1 int,col2 varchar2(100));insert into tab23 values(1,'XXXXXXXXXXXXXXXXXXXXXXX');commit;alter system checkpoint; selectdbms_rowid.rowid_to_absolute_fno(…

アーカイブログ削除

DB

Oracle rman target / list archivelog all; delete archivelog until time 'sysdate - 20'; MySQL ※指定されたログファイル名または日付の前にあるログインデックスファイルにリストされているすべてのバイナリログファイルを削除します。 purge BINARY log…

リストアポイント

DB

Oracle create restore point rp1; select * from v$restore_point; MySQL 調べた限りない模様 PostgreSQL select pg_create_restore_point('rp1'); vim recovery.conf recovery_target_name = 'rp1' SQL Server https://docs.microsoft.com/ja-jp/sql/relat…

SSL接続

DB

Oracle https://docs.oracle.com/cd/E57425_01/121/DBSEG/asossl.htm#GUID-6AD89576-526F-4D6B-A539-ADF4B840819Fhttps://docs.oracle.com/cd/E57425_01/121/DBIMI/walet.htm#GUID-7BEA833A-AB6B-4F9B-A3B2-7727BA6608FB__CIHDHIDChttps://qiita.com/takech9…

Row-Level Security

DB

Oracle VPD --手順1: ユーザー・アカウントとサンプル表の作成conn / as sysdba GRANT CREATE SESSION, CREATE ANY CONTEXT, CREATE PROCEDURE, CREATE TRIGGER, ADMINISTER DATABASE TRIGGER TO sysadmin_vpd IDENTIFIED BY oracle; GRANT EXECUTE ON DBMS_…

sleep

DB

Oracle execute DBMS_LOCK.SLEEP(10); MySQL select sleep(10); PostgreSQL select pg_sleep(10); SQL Server https://sql55.com/query/sql-sleep-waitfor.php begin select getdate();waitfor delay '00:00:05';select getdate(); endgo

繰り返し実行

DB

Oracle while true; doecho "set linesize 150"echo "select * from v\$instance;"echo "select to_char(sysdate,'YYYY/MM/DD HH24:MI:SS') from dual;"sleep 2 ;done | sqlplus / as sysdba ※SQLcl(Oracle SQL Developerコマンドライン) REPEAT <iterations> <sleep>スリープ間</sleep></iterations>…

例外ハンドリング

DB

Oracle set serveroutput on declarebeginfor i in 1..1000 loop insert into tab1 values(1); commit;end loop; exception when DUP_VAL_ON_INDEX then dbms_output.put_line('一意性の制約違反発生'); when others then dbms_output.put_line(SQLCODE); db…

スプール

DB

Oracle spool a.log select * from v$instance; spool off MySQL https://qiita.com/xuj/items/ebbb993841359d8e2b91 pager cat > a.log PostgreSQL \o sql.log ただし、実行結果は表示されない SQL Server sqlcmd -o sql.log

マルチマスタ

DB

Oracle アドバンスド・レプリケーション https://www.system-exe.co.jp/dbexpert06/https://www.oracle.com/technetwork/jp/ondemand/database/db-technique/replipractice-520823-ja.pdf (12cR1) node1: 192.168.137.124 →マスター定義サイト、DB名:PROD1.e…

レプリケーション遅延監視

DB

Oracle Data Guard Broker dgmgrl connect sys/oracle show database verbose 'stb'; トランスポート・ラグや適用ラグを確認可能 -- RDSマニュアルに記載の方法the sum of the Apply Lag value and the difference between the current time and the apply l…

DDLのロールバック

DB

Oracle DDLはロールバックできない MySQL DDLはロールバックできない PostgreSQL DDLでもロールバック可能 start transaction; truncate table tab33;rollback; SQL Server DDLでもロールバック可能 begin transaction; truncate table tab33;rollback;

カラム追加・変更・削除

DB

Oracle (19c)drop table tab1 purge;create table tab1(col1 int);alter table tab1 add(col2 varchar2(10));alter table tab1 modify(col2 varchar2(100));alter table tab1 drop(col2); drop table tab2 purge;create table tab2(col1 int);alter table ta…

乱数ソート

DB

Oracle select * from tab1 order by dbms_random.value(); MySQL select * from tab1 order by rand(); PostgreSQL select * from tab1 order by random() ; SQL Server select * from tab1 order by newid() ;

フルスキャンとインデックスの制御

DB

Oracle OPTIMIZER_INDEX_COST_ADJを指定すると、オプティマイザがアクセス・パスを選択するときに、索引を使用する傾向の強さを調整できます。つまり、オプティマイザが全表スキャンよりも索引アクセス・パスを選択する傾向を、強めたり弱めたりすることがで…

ロックタイムアウト

DB

Oracle select * from tab1 for update wait 10; --DDL文がDMLロック・キューで待機する時間の時間制限alter session set ddl_lock_timeout = 3; insert文に対して、カラム追加はこの制限が適用されず、待ち続けるカラム変更はこの制限が適用されるカラム削…

接続時オプション

DB

Oracle vim $ORACLE_HOME/sqlplus/admin/glogin.sql set lines 1000set pages 5000 set sqlprompt "&_connect_identifier(&_user)> " MySQL vim /etc/my.cnf [mysqld]init_connect='SET autocommit=0' ※init_connect の内容は、SUPER 権限を持つユーザーに対…

稼動統計情報クリア

DB

Oracle インスタンス再起動しかない模様 MySQL flush status; ※一部の変数のみ PostgreSQL select * from pg_stat_user_tables where relname = 'tab1'; select pg_stat_reset(); SQL Server (2019) 待機統計情報のリセットDBCC SQLPERF("sys.dm_os_wait_sta…

プランナ統計情報クリア

DB

MySQL (8.0.26) drop table tab1;create table tab1(col1 int,col2 varchar(100) ); insert into tab1 values(100,'AAA');insert into tab1 values(200,'BBB');insert into tab1 values(300,'CCC');select * from tab1; analyze table tab1; select * from m…

強制復旧

DB

Oracle なし MySQL vim /etc/my.cnf [mysqld]innodb_force_recovery = 1 テーブルをダンプできるように、innodb_force_recovery オプションを使用して、バックグラウンド操作が実行されないようにして InnoDB ストレージエンジンを強制的に起動させることが…

CTE

DB

Oracle with tab11(col1,col2) as ( select col1,col1 * 2 from tab1)select col1,col2 from tab11; with tab12(col1) as ( select 1 from dual union all select col1+1 from tab12 where col1 < 30)select col1 from tab12 order by col1; MySQL (8) with …

ヒストグラム統計

DB

ヒストグラム統計には実データが含まれる MySQL (8.0.28) drop table tab1;create table tab1(col1 int,col2 varchar(100) ); insert into tab1 values(100,'AAA');insert into tab1 values(200,'BBB');insert into tab1 values(300,'CCC');select * from ta…

動的サンプリング

DB

Oracle show parameter OPTIMIZER_DYNAMIC_SAMPLING alter session set OPTIMIZER_DYNAMIC_SAMPLING = 4; MySQL 14.13.16.2 非永続的オプティマイザ統計のパラメータの構成https://dev.mysql.com/doc/refman/5.6/ja/innodb-statistics-estimation.html show …

ランダムデータ作成

DB

Oracle http://kagamihoge.hatenablog.com/entry/20130521/1369137719 --1以上100以下の整数の乱数select floor(dbms_random.value(1, 101)) from dual; --16進10文字select substr(standard_hash(dbms_random.value(), 'MD5'),1,10) from dual; --2019/01/0…

CTAS

DB

Oracle create table tab2 as select * from tab1; MySQL create table tab2 as select * from tab1; PostgreSQL create table tab2 as select * from tab1; SQL Server http://d.hatena.ne.jp/kenpoco/20080324/1206327055 select * into tab2 from tab1;