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

10進数と2進数の基数変換

DB

MySQL (8.0.22) 10進数→2進数 select conv(1,10,2);select conv(2,10,2);select conv(3,10,2);select conv(8,10,2); 2進数→10進数select conv('1',2,10);select conv('10',2,10);select conv('11',2,10);select conv('1000',2,10); Oracle (19c)http://kozir…

select結果をセッション変数に格納

DB

MySQL (8.0.22) https://www.wakuwakubank.com/posts/493-mysql-user-var/ set @val := (select col1 from tab1);又はselect @val := col1 from tab1; select @val; ※データが2件以上の場合は下記エラーとなるERROR 1242 (21000): Subquery returns more tha…

SQLの使用CPU、メモリリソース確認

DB

MySQL (8.0.22) -- CPU確認 select @@profiling; set profiling = 1; select count(*) from tab1; show profiles;show profile cpu for query 1; --------(8.0.28) select thread_id, event_id, sql_text, CPU_TIMEfrom performance_schema.events_statement…

adaptive plan

DB

MySQL (8.0.22) 調べた限りなし Oracle (19c) https://docs.oracle.com/cd/F19136_01/tgsql/query-optimizer-concepts.html#GUID-5A1EB094-1A9E-4B69-9BE5-39BDA2B3253C 適応問合せ計画(Adaptive Plans) デフォルトで有効 show parameter OPTIMIZER_ADAPTIVE…

SQLの読み書きブロック数確認

DB

MySQL (8.0.22) show session status like 'Innodb_buffer_pool_read_requests';show session status like 'Innodb_pages_read';select count(*) from tab1;show session status like 'Innodb_buffer_pool_read_requests';show session status like 'Innodb_…

SQLモード

DB

MySQL (8.0.22)https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html select @@sql_mode; ALLOW_INVALID_DATESANSI_QUOTESERROR_FOR_DIVISION_BY_ZERO ★デフォルトONHIGH_NOT_PRECEDENCEIGNORE_SPACENO_AUTO_VALUE_ON_ZERONO_BACKSLASH_ESCAPESNO_DIR_IN_…

レンジパーティションのメンテナンス

DB

MySQL (8.0.22) drop table tab1; create table tab1( col1 int not null, col2 timestamp not null) partition by range ( unix_timestamp(col2) ) ( partition p1 values less than (unix_timestamp('2017-01-01 00:00:00') ) , partition p2 values less …

テストテーブル作成ツール

DB

MySQL (8.0.22) drop procedure proc1;delimiter //create procedure proc1(in param1 int, in param2 int, in param3 int)begin declare tabnum int default param1;declare colmin int default param2;declare colmax int default param3;declare colnum i…

オンラインインデックス処理(作成、リビルド、削除)

DB

MySQL (8.0.22)https://dev.mysql.com/doc/refman/8.0/en/innodb-online-ddl-operations.html drop table tab1;create table tab1(col1 int);insert into tab1 values(1); create index ind1 on tab1(col1) ALGORITHM=INPLACE; alter table tab1 engine inno…

パーティション境界確認

DB

MySQL (8.0.22) select table_name,partition_name,partition_descriptionfrom information_schema.partitionswhere table_schema = 'test'order by table_name,partition_name; Oracle (19c) select table_name,partition_name,high_valuefrom user_tab_par…

問い合わせ変換ヒント句

DB

MySQL (8.0.22)https://dev.mysql.com/doc/refman/8.0/en/optimizer-hints.html ①OR条件をUNION ALLに変換する/しないヒント句なしインデックスレベルのマージはINDEX_MERGE/NO_INDEX_MERGE ②ビューをマージする/しないMERGE/NO_MERGE ③副問合せのネストを解…

in句サブクエリ内でunionをunion all

DB

MySQL (8.0.22) drop table tab1;drop table tab2; create table tab1(col1 int, col2 int, col3 int);create table tab2(col1 int, col2 int, col3 int); alter table tab1 add constraint tab1pk primary key(col1);alter table tab2 add constraint tab2p…

インデックスアクセス3種

DB

MySQL (8.0.22) 通常のインデックススキャン→type=const or ref or range インデックスオンリースキャン→extra=Using index インデックスフルスキャン→type=index drop table tab1; create table tab1(col1 int, col2 int, col3 int, col4 int); alter table…

order by キーカラムを含むインデックスの効果

DB

MySQL (8.0.22) drop table tab1;drop table tab2; create table tab1(col1 int, col2 int, col3 int, col4 int);create table tab2(col1 int, col2 int, col3 int, col4 int); alter table tab1 add constraint tab1pk primary key(col1);alter table tab2 …

インデックスのリーフノードに含まれるデータ

DB

MySQL (8.0.22)https://dev.mysql.com/doc/refman/8.0/en/innodb-index-types.html (1)クラスタインデックスの場合(通常、主キーの場合)すべてのカラムがリーフノードに含まれる (2)セカンダリインデックスの場合セカンダリインデックスのカラムと主キーのカ…

プロシージャ作成時の文字コード、改行コードの影響

DB

MySQL (8.0.22) yum install epel-releaseyum install nkf vim a.sql drop procedure proc1;delimiter //create procedure proc1()begin -- コメント select 'あ'; select 'い'; select 'う';end//delimiter ; nkf -w -Lu a.sql > utf8.sqlnkf -s -Lw a.sql …

ソース確認

DB

MySQL (8.0.22) drop function func1; delimiter //create function func1()returns intdeterministicbegin return 0;end//delimiter ; show create function func1\G drop procedure proc1; delimiter //create procedure proc1()begin select 1;end//delim…

temp使用量確認

DB

MySQL (8.0.22) https://dev.mysql.com/doc/refman/8.0/en/information-schema-innodb-session-temp-tablespaces-table.htmlhttps://qiita.com/tyoro/items/5436a5172b547e5e52f5https://dev.mysql.com/doc/refman/8.0/en/internal-temporary-tables.html se…

undo使用量確認

DB

MySQL https://yoku0825.blogspot.com/2020/10/innodbhistory-list-length.html (8.0.22) -- 1. REPEATABLE-READ読み取り一貫性用のUNDOレコード数あるトランザクションからテーブルを繰り返し更新、コミットすると同時に別セッションからトランザクションを…