タグ

SQLとoracleに関するorenonihongogayabaiのブックマーク (7)

  • AWS Schema Conversion Tool | AWS

    AWS では、異種データベースの移行を予測可能、高速、安全、かつシンプルにするために、2 つのスキーマ変換ソリューションを提供しています。お客様は、次のいずれかを選択することができます。1) AWS Database Migration Service (AWS DMS) コンソールにログインして、AWS DMS Schema Conversion (DMS SC) ワークフローを開始し、フルマネージドな体験をするか、2) AWS Schema Conversion Tool (AWS SCT) ソフトウェアをローカルドライブにダウンロードするか、を選択することが可能です。 どちらのオプションも、ソースデータベースのスキーマと、ビュー、ストアドプロシージャ、関数などのデータベースコードオブジェクトの大部分を自動的に評価し、ターゲットデータベースと互換性のある形式に変換します。自動的に変換で

    AWS Schema Conversion Tool | AWS
  • Oracle SQL Developerで日付表示の書式を変更する - 作業ノート

    Macで起動したときの変更方法。Windows版も同様だと思う。(環境がないので試してない) SQL Developerを起動する。 メニューから ツール > プリファレンス を選び、ダイアログを開く。 左の一覧から データベース > NLS を選ぶ。 右の一覧から日付書式(RR-MM-DD)を変更する。(YYYY-MM-DD HH24:MI:SS) 右下のOKボタンを押す。 これで、ワークシートで実行したSQLの問い合わせ結果で、日付型に対して上記の書式が適用される。 参考 Default display format for date field in Oracle SQL Developer | Software Chain

    Oracle SQL Developerで日付表示の書式を変更する - 作業ノート
  • 【Oracle】統計情報を手動で更新する

    Oracleの統計情報の収集はデフォルトでは自動で行われますが、 以下のプロシージャを実行することによって手動で統計情報を更新することができます。 BEGIN --テーブル単位の収集 DBMS_STATS.GATHER_TABLE_STATS ( OWNNAME => 'ユーザ名' ,TABNAME => 'テーブル名' ,METHOD_OPT => 'FOR ALL INDEXED' ,CASCADE => TRUE ); END; BEGIN --スキーマ単位の収集 DBMS_STATS.GATHER_SCHEMA_STATS ( OWNNAME => 'ユーザ名' ,OPTIONS => 'GATHER' ); END; デフォルトでは1日1回しか更新されないので、大量データを投入後などにすぐにSQL文を実行しても、 インデックスがうまく使われなかったり、逆に全表走査の方が早い場合で

  • カーソルのループでINSERT100万とSELECT INSERT100万の速度比較してみた - kagamihogeの日記

    やるまえから結果が見えてる試みではあるんですが。最近SQLを再勉強するにあたり、SQLてのは、手続き的にループ回すのに比べて集合to集合の演算の方が圧倒的に早い、というのを改めて認識した。なので、このエントリはそれを実感するのが目的です。 やったこと 環境はOracle 11g XEを使用。 FROM側とTO側のデータを入れるテーブルを作る。FROM側には100万件レコードを入れておく。 CREATE TABLE FROM_A_TBL (CLM VARCHAR2(16)); CREATE TABLE TO_A_TBL (CLM VARCHAR2(16)); FROMテーブルをカーソルでループしながらTOテーブルに1件ずつINSERTするPL/SQLを作る。 create or replace PROCEDURE TO_WITH_CURSOR IS CURSOR C1 IS SELECT C

    カーソルのループでINSERT100万とSELECT INSERT100万の速度比較してみた - kagamihogeの日記
  • ダイレクト・パス・インサート - オラクル・Oracleをマスターするための基本と仕組み

    ダイレクト・パス・インサート (ダイレクト・ロード・インサート) ダイレクト・パス・インサートとは、データベースバッファを経由せずデータファイルへ 直接データを落とし込むという点から、ある特定条件下で非常に優れた処理方法である。 データベースのバッファ処理を経由しないことで高速に処理でき、バッファから他のキャッシュを追い出すことによるキャッシュヒット率の低下を防ぐこともできる。 高速に大量データをインサートさせるための手法 ダイレクト・パス・インサートによる高速のインサート処理にはトレードオフがあるが脅威的な速さを誇る。 数百万件オーダのデータの投入するのに数分とかからない(レコードサイズ、スペックに左右はされる) 通常のパスのローディングに比べて 数分の1 程度の時間で投入できる。 NOLOGGING 状態の場合 REDO ログが出力されない。(高速にはなる一方でフルバックアップするまで

  • Oracleセッション削除メモ(Hishidama's Oracle kill session Memo)

    Oracle kill sessionメモ DBOracle)を操作する際に クライアントからDBに接続(connect)することによって、セッションが張られる。 1つのセッションの中でトランザクションを何個も実行することになる。 (コミットまたはロールバックによって1つのトランザクションが終了し、次のトランザクションが始まる) クライアントとDBが不慮に切断されたりすると、DB側でセッションが残り続ける(トランザクションが残り続ける。すなわちDBがロックされて、他のセッションからDBを更新できなくなる)ことがある。 そうなったセッションは強制的に削除しないと、DBの運用に支障を来す。 削除するにはsysdba(ユーザーsys)でDBに接続する必要がある。 セッションの確認方法(v$session) トランザクションの確認方法(v$transaction) セッションとトランザクションの

  • OracleでのLIMITの記述あれこれ - アシアルブログ

    こんにちは。Oracle挑戦中の松田です。 今までまったく触ったことのなかったOracleに初めて触れ、頭が混乱中なので備忘録がわりにブログに書き留めておきます。 特に悩んだのがLIMIT関連。 何故かOracleってLIMITが無いんですね。LIMITに慣れていると、なぜ存在していないのかが不思議でしょうがありません。ほんとどうしてなんでしょ? ・memberテーブルから LIMIT 10 で結果取得 SELECT * FROM member WHERE ROWNUM <= 10 ROWNUM ・・・ 抽出した結果セットに勝手に付けられるレコード番号 基はこれを使って結果セットの切り分けをするらしい。 ・memberテーブルから LIMIT 10, OFFSET 5 で結果取得 SELECT * FROM ( SELECT id, category, age, ROWNUM line

    OracleでのLIMITの記述あれこれ - アシアルブログ
  • 1