SlideShare a Scribd company logo
1 of 59
50分で理解する
SQL Serverでできることできないこと


                                                   株式会社インサイトテクノロジー
                                                   テクノロジーソリューション部
                                                            内山 義夫


       Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   1
Agenda

• 1.SQL Serverってどうなの?
• 2.SQL Serverでできることできないこと
 – 2-1.ロックの仕様の違いを理解する
 – 2-2.オブジェクトの仕様の違いを理解する
 – 2-3.パフォーマンス管理ツールを理解する
• 3.まとめ




           Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   2
1. SQL Serverってどうなの?
       Serverってどうなの?




    Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   3
SQL Serverのイメージ

• SQL Serverといえば・・・?




   出荷本数シェァNo.1                                       GUIによる高いユーザビリティ




    洗練されたBI機能                                       オールインワンによる低コスト



                Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   4
現場の本音

これからOracle以外の
これから                                Oracle以外で提案すると
                                    Oracle
DBを覚えるのが大変                         失敗した時に「何でOracleに
                                   失敗した時に「何で
                                    しなかった」と言われそう
          ロック待ちが多発
                                                                                    SQL Server
                                                                                        Serverができる⼈
          するんじゃない?
                                                                                     って誰かいたっけ?


                チューニングって
                できないんでしょ?


                                    この前導入した案件は
                                    うまくいかなかった
                                      らしい・・・
 •アプリケーション開発者                                •お客様に提案する⽴場の⼈




                   Copyright © 2011 Insight Technology, Inc. All Rights Reserved.                     5
データベースの現実

• データベースのデファクトスタンダードは間違いなくOracle
• ただし、一昔前のように何でもOracle、というわけではなく
  なってきつつある
  ⇒適材適所にデータベースを配置
• トップダウンでデータベースが決まるケースも・・・
⇒Oracleしか知らないでは済まされなくなってきている
• ひとつのデータベース技術だけでは生き残れない
• SQL Serverも⻤熱い(弊社⼩幡談)



DBでできることできないことを正しく理解することが重要!


           Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   6
2.SQL Serverでできることできないこと
      Serverで




      Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   7
SQL Serverでできることできないこと



• 理解すべきポイント
   設計フェーズ                  開発フェーズ                                              運用フェーズ

  •ロックの仕様の             •オブジェクトの                                                •パフォーマンス
  違いを理解する                仕様の違いを                                                管理ツールを
                         理解する                                                  理解する




 フェーズが後になればなるほど手戻りも増大!


              Copyright © 2011 Insight Technology, Inc. All Rights Reserved.              8
2-1.ロックの仕様の違いを理解する
  1.ロックの仕様の違いを理解する




    Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   9
設計フェーズ

ロックの仕様の違いを理解する                                                         開発フェーズ
                                                                       運用フェーズ
                                                                       運用 フェーズ




 ロックの仕様の違いを理解するポイント

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


     •ロックエスカレーション




      Copyright © 2011 Insight Technology, Inc. All Rights Reserved.             10
設計フェーズ

 ロックの仕様の違いを理解する                                                                    開発フェーズ
                                                                                   運用フェーズ
                                                                                   運用 フェーズ


• トランザクション分離レベル
 – 同時に複数のトランザクションが実⾏した時の影響を定義
 – Oracle、SQL Server共にread committed
 – Read Committed…コミットしたデータが読める隔離レベル
                   Read Committed
       Oracle
   マルチバージョニング⽅式(オプティミスティック同時実⾏制御)
    - 対象となるリソースに対して排他ロックを取得
    - 排他ロック取得中でも更新前コミット済みデータが⾒れる
    - 更新前データはUndo Segmentに保持

     SQL Server
   ロック⽅式(ペシミスティック同時実⾏制御)
    - 対象となるリソースに対して排他ロックを取得
    - 排他ロック取得中は他の処理を待機させる



                  Copyright © 2011 Insight Technology, Inc. All Rights Reserved.             11
設計フェーズ

       OracleとSQL Serverの動き方                                                                                             開発フェーズ
                                                                                                                         開発 フェーズ
                                                                                                                         運用フェーズ
                                                                                                                         運用 フェーズ




          Oracle                                                               SQL Server
  マルチバージョニング⽅式                                                              ロック⽅式

トランザクションA開始                                                              トランザクションA開始
                                  トランザクションB開始                                                                     トランザクションB開始
                      UserA:400                                                                       UserA:400
                      UserB:200                                                                       UserB:200
Update 売上                                                                Update 売上
Set 売上 = 売上 + 100                                                        Set 売上 = 売上 + 100
Where ID = ‘UserA’;                                                      Where ID = ‘UserA’;
                      UserA:500                                                                       UserA:500
                      UserB:200                                                                       UserB:200
                                  Select * From 売上;                                                               Select * From 売上;



                      UserA:500   トランザクションAが
                                                                                                                  ロック待ち
                      UserB:200   更新する前の値を参照
                                  UserA:400
Commit;                                                                  Commit;
                                  UserB:200

                                  Commit;                                                                         Commit;
                                                                                  ロック待ち解放
                                                                                  UserA:500
                                                                                  UserB:200




                                     Copyright © 2011 Insight Technology, Inc. All Rights Reserved.                                   12
設計フェーズ

   トランザクション分離レベルの変更                                                               開発フェーズ
                                                                                  開発 フェーズ
                                                                                  運用フェーズ
                                                                                  運用 フェーズ




• Oracleの仕様を前提に開発する場合、SQL Serverのトランザ
  クション分離レベルをRead Committed Snapshotに変更する
                                                                SQL Server
                                                        Read Committed
   Oracle
Read Committed                               ≒ Read Committed Snapshot




                 Copyright © 2011 Insight Technology, Inc. All Rights Reserved.             13
設計フェーズ

 Read Committed Snapshot時の動き                                                                            開発フェーズ
                                                                                                        開発 フェーズ
                                                                                                        運用フェーズ
                                                                                                        運用 フェーズ




                     Select⽂実⾏時


       トランザクションA開始
                                                    トランザクションB開始
                              UserA:400                                                       インデックスの
                              UserB:200
       Update 売上                                                                              有無は関係無
       Set 売上 = 売上 + 100
       Where ID = ‘UserA’;
                              UserA:500
                              UserB:200
                                                    Select * From 売上;
更新前データは
tempDBに保持                                             トランザクションAが
                                                      更新する前の値を参照
                                                      UserA:400
       Commit;
                                                      UserB:200
                                                    Commit;




                             Copyright © 2011 Insight Technology, Inc. All Rights Reserved.                       14
設計フェーズ

  SQl ServerのRead Committed                                                   開発フェーズ
                                                                              開発 フェーズ
                                                                              運用フェーズ
                                                                              運用 フェーズ




• 気を付けるべきポイント
 – Update文やDelete文の実⾏には注意が必要!
   ⇒インデックスの有無で動きが大きく異なる




             Copyright © 2011 Insight Technology, Inc. All Rights Reserved.             15
設計フェーズ

    OracleとSQL Serverの動き方                                                                               開発フェーズ
                                                                                                        開発 フェーズ
                                                                                                        運用フェーズ
                                                                                                        運用 フェーズ




                 トランザクションA開始
                                                                      トランザクションB開始
                                                UserA:400
                                                UsarB:200
                 Update 売上
                 Set 売上 = 売上 + 100
                 Where ID = ‘UserA’;
                                                                      Select * From 売上;



IDにインデックス有                                                                                      IDにインデックス無




                        トランザクションAが                                                              ロック待ち発生!
                        更新する前の値を参照
Commit;                                                        Commit;
                        UserA:400
                        UserB:200
          UserA:500                                                                        UserA:500
          UserB:200                                                                        UserB:200
                                                                                                       ロック待ち解放




                          Copyright © 2011 Insight Technology, Inc. All Rights Reserved.                          16
設計フェーズ

     SQL Serverのロック                                                             開発フェーズ
                                                                                開発 フェーズ
                                                                                運用フェーズ
                                                                                運用 フェーズ




• SQL Serverではロックを考慮した設計した設計が必要
 –   ⾏を大量にロックするような処理はなるべく控える
 –   アプリケーションはできるだけショートトランザクションにする
 –   Update文やDelete文で指定する条件の項目にはインデックスは必須
 –   ロック待ちやデッドックの情報を取得しておく




               Copyright © 2011 Insight Technology, Inc. All Rights Reserved.             17
設計フェーズ

  ロックの仕様の違いを理解する                                                                    開発フェーズ
                                                                                    開発 フェーズ
                                                                                    運用フェーズ
                                                                                    運用 フェーズ




• ロックエスカレーション(SQL Serverのみ)
  – 粒度の⼩さいロックを変換し粒度が大きいロックにする動き
  – ロックエスカレーションが発生する条件
    • メモリリソースのしきい値
       – SQL Serverが使用するメモリの40%を超えた場合
    • ロック数のしきい値
       – 1SQLステートメントで5000以上のロックを取得する場合

  – ロックエスカレーションを使用しないようにするには・・・
    • Trace flag 1211で制御
    • ※テーブル単位の場合
      alter table [テーブル名] set ( LOCK_ESCALATION = DISABLE );




                   Copyright © 2011 Insight Technology, Inc. All Rights Reserved.             18
設計フェーズ

 Oracleのようにした場合・・・                                                                開発フェーズ
                                                                                  運用フェーズ
                                                                                  運用 フェーズ




 トランザクション分離レベル                                                  ロックエスカレーション
Read Committed
                                                     Trace flag 1211に設定
Read Committed Snapshot                              (ロックエスカレーションOFF)




       オーバーヘッドはどうなるか?


                 Copyright © 2011 Insight Technology, Inc. All Rights Reserved.             19
設計フェーズ

       オーバーヘッド                                                                                                               開発フェーズ
                                                                                                                             開発 フェーズ
                                                                                                                             運用フェーズ
                                                                                                                             運用 フェーズ


   • Read Committed Snapshotのオーバーヘッド
                                      50                                100                                 150
                                                                                                                             TPS

                                                                                                      142    100%
        Read Committed
                            100%
                                                                                                                              TPS

                                                                                             128     90%                      I/O req/sec@tempdb
Read Committed Snapshot
                                                                                                            30     30,000%

                                                                                                                             I/O req/sec

                                                                                                            30               @tempdb
                                      10                                20

   • ロックエスカレーションさせない場合のリソースの変化
                                      50                                100                                 150
                                                                                                                             TPS

        Read Committed                             69     100%

     with Lock Escalation                                                              171     100%
                                                                                                                              TPS

                                                                                                    136     198%              Memory Size@Lock
        Read Committed
     With trace flag 1211                                                                           184     108%

                                                                                                                             Memory Size(MB)

                                      100                               150                                 200              @Lock




                                   Copyright © 2011 Insight Technology, Inc. All Rights Reserved.                                          20
2-2.オブジェクトの仕様の違いを理解する
  2.オブジェクトの仕様の違いを理解する




     Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   21
設計フェーズ

オブジェクトの仕様の違いを理解する                                                      開発フェーズ
                                                                       開発 フェーズ
                                                                       運用フェーズ
                                                                       運用 フェーズ




 オブジェクトの仕様を理解するポイント

                    シーケンス


             パーティション

     マテリアライズドビュー

                         PL/SQL



      Copyright © 2011 Insight Technology, Inc. All Rights Reserved.             22
設計フェーズ

オブジェクトの仕様の違いを理解する                                                      開発フェーズ
                                                                       開発 フェーズ
                                                                       運用フェーズ
                                                                       運用 フェーズ




 オブジェクトの仕様を理解するポイント

                    シーケンス


             パーティション

     マテリアライズドビュー

                         PL/SQL



      Copyright © 2011 Insight Technology, Inc. All Rights Reserved.             23
設計フェーズ

  SQL Server de シーケンス                                                           開発フェーズ
                                                                                開発 フェーズ
                                                                                運用フェーズ
                                                                                運用 フェーズ

    Sequence
・連続した数値を采番するオブジェクト
・複数のセッションからでもユニークな値を采番可能
・SQL Serverにはオブジェクトとして采番するものは存在しない
 ⇒采番する機能としてはIdentity属性が該当

Oracle:シーケンス                                          SQL Server:Identity

・値を自動的に采番                                           ・○値を自動的に采番
・オブジェクトとして作成                                        ・×オブジェクトとして作成
・特定のカラムに依存しないで采番可能                                  ・×特定のカラムに依存しないで采番可能
・増分値や開始値が設定可能                                       ・○増分値や開始値が設定可能
・最大値が設定可能                                           ・△最大値はデータ型の最大値固定
・⽂字列のカラムにも指定可能                                      ・○⽂字列のカラムにも指定可能
・カラム属性として定義可能                                       ・○カラムの属性として定義可能
                                                    ・※1つのテーブルに1つのみ作成可能




               Copyright © 2011 Insight Technology, Inc. All Rights Reserved.             24
設計フェーズ

  SQL Server de シーケンス                                                         開発フェーズ
                                                                              開発 フェーズ
                                                                              運用フェーズ
                                                                              運用 フェーズ




• SQL Serverでシーケンスを理解するポイント:
  ⇒SQL ServerのIdentityでOracleのシーケンスのような動
  きがどこまでできるのか?




             Copyright © 2011 Insight Technology, Inc. All Rights Reserved.             25
設計フェーズ

   SQL Server de シーケンス                                                                                開発フェーズ
                                                                                                      開発 フェーズ
                                                                                                      運用フェーズ
                                                                                                      運用 フェーズ


Oracle:シーケンス                                                             SQL Server:Identity

■シーケンス作成
CREATE SEQUENCE seq_1
START WITH 1
INCREMENT BY 1
MAXVALUE 1
MINVALUE 10000;

※テーブルの属性として定義する場合                                                        ※テーブルの属性として定義する場合
 CREATE TABLE table1                                                       CREATE TABLE table1
 (col1 NUMBER DEFAULT seq_1.NEXTVAL                                        (col1 int IDENTITY(1,1),
  col2 NUMBER);                                                             col2 int);

■番号取得⇒更新                                                                 ■番号取得⇒更新
DECLARE v_seq NUMBER;                                                    INSERT INTO table1 (col2)
SELECT seq_1.NEXTVAL INTO v_seq FROM DUAL;                               OUTPUT inserted.col1
                                                                         VALUES(100) ;
INSERT INTO table1
VALUES (v_seq,100);




                               Copyright © 2011 Insight Technology, Inc. All Rights Reserved.                   26
設計フェーズ

  SQL Server de シーケンス                                                        開発フェーズ
                                                                             開発 フェーズ
                                                                             運用フェーズ
                                                                             運用 フェーズ




• ちなみに・・・
• SQL Server次期バージョンリリース




   ポイント
  シーケンスオブジェクトが追加



            Copyright © 2011 Insight Technology, Inc. All Rights Reserved.             27
設計フェーズ

 SQL Server de シーケンス                                                            開発フェーズ
                                                                                開発 フェーズ
                                                                                運用フェーズ
                                                                                運用 フェーズ




Oracle:シーケンス                                          SQL Server:シーケンス

・値を自動的に采番                                           ・○値を自動的に采番
・オブジェクトとして作成                                        ・○オブジェクトとして作成
・特定のカラムに依存しないで采番可能                                  ・○特定のカラムに依存しないで采番可能
・増分値や開始値が設定可能                                       ・○増分値や開始値が設定可能
・最大値が設定可能                                           ・○最大値が設定可能
・⽂字列のカラムにも指定可能                                      ・○⽂字列のカラムにも指定可能
・カラム属性として定義可能                                       ・○カラム属性として定義可能




               Copyright © 2011 Insight Technology, Inc. All Rights Reserved.             28
設計フェーズ

   SQL Server de シーケンス                                                                                        開発フェーズ
                                                                                                              開発 フェーズ
                                                                                                              運用フェーズ
                                                                                                              運用 フェーズ


Oracle:シーケンス                                                             SQL Server:シーケンス

■シーケンス作成                                                                 ■シーケンス作成
CREATE SEQUENCE seq_1                                                    CREATE SEQUENCE seq_1 AS INT
START WITH 1                                                             MINVALUE 1
INCREMENT BY 1                                                           MAXVALUE 100000
MAXVALUE 1                                                               START WITH 1
MINVALUE 10000;                                                          INCREMENT BY 1;

※テーブルの属性として定義する場合                                                         ※テーブルの属性として定義する場合
 CREATE TABLE table1                                                       CREATE TABLE table1
 (col1 NUMBER DEFAULT seq_1.NEXTVAL                                        (col1 NUMBER DEFAULT NEXT VALUE
  col2 NUMBER);                                                             col2 NUMBER);

■番号取得⇒更新                                                                 ■番号取得⇒更新
DECLARE v_seq NUMBER;
SELECT seq_1.NEXTVAL INTO v_seq FROM DUAL;                               DECLARE @v_seq INT = NEXT VALUE FOR seq_1;

INSERT INTO table1 VALUES (v_seq,100);                                   INSERT INTO table1 VALUES (@v_seq,100);




                                  Copyright © 2011 Insight Technology, Inc. All Rights Reserved.                        29
設計フェーズ

オブジェクトの仕様の違いを理解する                                                      開発フェーズ
                                                                       開発 フェーズ
                                                                       運用フェーズ
                                                                       運用 フェーズ




 オブジェクトの仕様を理解するポイント

                    シーケンス


             パーティション

     マテリアライズドビュー

                         PL/SQL



      Copyright © 2011 Insight Technology, Inc. All Rights Reserved.             30
設計フェーズ

  SQL Server de パーティション                                                            開発フェーズ
                                                                                   開発 フェーズ
                                                                                   運用フェーズ
                                                                                   運用 フェーズ

   Partitioning
・1 つのテーブルを一定の基準で分割する
 - 複数パーティションに格納されたデータをパラレルに抽出可能
 - データ抽出範囲(障害範囲)の極⼩化
・アプリケーションから透過的

Oracle:パーティション                                           SQL Server:パーティション

・パーティションによる負荷分散                                        ・○パーティションによる負荷分散
・パーティション可能なオブジェクト                                      ・○パーティション可能なオブジェクト
  -テーブル、インデックス                                           -テーブル、インデックス
・パーティション⽅式を選択可能                                        ・×パーティション⽅式を選択可能
  -レンジ/リスト/ハッシュ                                         △ -レンジ/リスト/ハッシュ
・パーティション毎にバックアップが可能                                    ・○パーティション毎にバックアップが可能
・障害範囲の極小化                                              ・○障害範囲の極小化




                  Copyright © 2011 Insight Technology, Inc. All Rights Reserved.             31
設計フェーズ

  SQL Server de パーティション                                                                             開発フェーズ
                                                                                                    開発 フェーズ
                                                                                                    運用フェーズ
                                                                                                    運用 フェーズ

• パーティションの種類
              SQL Server
レンジパーティション    でも使用可能           リストパーティション                                                    ハッシュパーティション
    売上テーブル                       売上テーブル                                                         売上テーブル
      date                     tokid                                                   Id

      2008                     TOKA                                                    1

      2008   2008年             TOKA                           得意先A                     103          Hash key 1
      2008                     TOKA                                                    177


      date                     tokid

      2009                     TOKB                                                    2

      2009   2009年             TOKB                           得意先B                     333          Hash key 2
      2009                     TOKB                                                    457


      date                     Tokid

      2010                     TOKC                                                    8

      2010   2010年             TOKC                           得意先C                     128          Hash key 3
      2010                     TOKC                                                    134


      date                     tokid

      2011                     TOKD                                                    9

      2011   2011年             TOKZ                             その他                    113          Hash key 4
      2011                     TOKN                                                    198




                      Copyright © 2011 Insight Technology, Inc. All Rights Reserved.                          32
設計フェーズ

 SQL Server de パーティション                                                     開発フェーズ
                                                                           開発 フェーズ
                                                                           運用フェーズ
                                                                           運用 フェーズ




• パーティションのポイント:
  ⇒パーティションのパフォーマンスは?




          Copyright © 2011 Insight Technology, Inc. All Rights Reserved.             33
設計フェーズ

  SQL Server de パーティション                                                                                     開発フェーズ
                                                                                                            開発 フェーズ
                                                                                                            運用フェーズ
                                                                                                            運用 フェーズ




• SQL Serverパーティション
  – パーティションによる負荷分散


  非partitioned           partitioned                                                     ・1,000,000件データ
    table                    table
                                                                                         ・select count(*)


                                                                                         ・非Partitioned table
                                                                                           … 7.8GB 8分14秒
  Physical       Physical                   Physical                         ・・・
     Table          Partition                  Partition                                 ・Partitioned table
                                                                                           … 7.8GB 4分03秒




                        Copyright © 2011 Insight Technology, Inc. All Rights Reserved.                                34
設計フェーズ

 SQL Server de パーティション                                                                        開発フェーズ
                                                                                              開発 フェーズ
                                                                                              運用フェーズ
                                                                                              運用 フェーズ




• ちなみに・・・
 – SQL Serverのデータ圧縮と組み合わせることで高速化可能
•パーティション分割のみ                                            •パーティション分割+データ圧縮
 ・1,000,000件データ                                            ・1,000,000件データ
 ・select count(*)                                          ・select count(*)


 ・非Partitioned table                                       ・非Compression table
   … 7.8GB 8分14秒                                             … 7.8GB 8分14秒
 ・Partitioned table                                        ・Compression table
   … 7.8GB 4分03秒                                             … 20.8MB 1.3秒
                                                                                          シーケンスだけ
                                                                                        異なるほぼ同じデータを
                                                                                          ページ単位で圧縮




                       Copyright © 2011 Insight Technology, Inc. All Rights Reserved.                   35
設計フェーズ

オブジェクトの仕様の違いを理解する                                                      開発フェーズ
                                                                       開発 フェーズ
                                                                       運用フェーズ
                                                                       運用 フェーズ




 オブジェクトの仕様を理解するポイント

                    シーケンス


             パーティション

     マテリアライズドビュー

                         PL/SQL



      Copyright © 2011 Insight Technology, Inc. All Rights Reserved.             36
設計フェーズ

  SQL Server de マテビュー                                                                 開発フェーズ
                                                                                      開発 フェーズ
                                                                                      運用フェーズ
                                                                                      運用 フェーズ

 Materialized View
・実体のあるビューのこと
・マテビューへの更新タイミングは任意に指定可能
・DBリンクと組み合わせることで、テーブルレプリケーションも可能
・SQL Serverではインデックス付きビューが最も近い機能

Oracle:マテリアライズドビュー                                          SQL Server:インデックス付きビュー


・マテビューへデータを反映する                                           ・×マテビューへデータを反映する
 タイミングは任意に指定可能                                             タイミングは任意に指定可能
 - 完全リフレッシュ                                                × - 完全リフレッシュ
 - 高速リフレッシュ(On Demand)                                     × - 高速リフレッシュ(On Demand)
 - 高速リフレッシュ(On Commit)                                     × - 高速リフレッシュ(On Commit)
・クエリーリライト機能(クエリを自動                                        ・○クエリーリライト機能(クエリを自動
 で書き換え)                                                    で書き換え)
・DBリンクと組み合わせてテーブル単位                                       ・× DBリンクと組み合わせてテーブル単位
 のレプリケーション                                                 のレプリケーション



                     Copyright © 2011 Insight Technology, Inc. All Rights Reserved.             37
設計フェーズ

 SQL Server de マテビュー                                                                    開発フェーズ
                                                                                        開発 フェーズ
                                                                                        運用フェーズ
                                                                                        運用 フェーズ


• インデックス付きビュー
 – 通常のビューを作成し、そのビューにインデックスを作成
 – 作成するインデックスはクラスタインデックスのみ
     • クラスタインデックス≒Oracleの索引構成表


 – インデックス付きビュー作成例
 – 基テーブル
   Sales.SalesOrderHeader ( AdventureWorks DBを使用)

 – ビューの作成
   CREATE VIEW v_SalesOrderCount WITH SCHEMABINDING AS
   SELECT SOH.CustomerID, COUNT_BIG(*) order_cnt
     FROM Sales.SalesOrderHeader SOH
   GROUP BY SOH.CustomerID;

 – インデックス付きビューの作成
   CREATE UNIQUE CLUSTERED INDEX v_SalesOrderCount_idx
   ON v_SalesOrderCount(CustomerID)



                       Copyright © 2011 Insight Technology, Inc. All Rights Reserved.             38
設計フェーズ

  SQL Server de マテビュー                                                        開発フェーズ
                                                                             開発 フェーズ
                                                                             運用フェーズ
                                                                             運用 フェーズ




• SQL Server de マテビューのポイント:
  ⇒制約の多さ+パフォーマンス




            Copyright © 2011 Insight Technology, Inc. All Rights Reserved.             39
設計フェーズ

 SQL Server de マテビュー                                                               開発フェーズ
                                                                                   開発 フェーズ
                                                                                   運用フェーズ
                                                                                   運用 フェーズ



• インデックス付きビューの懸念点
 – インデックス付きビューの制約
   •   インデックス付きビュー内で他のビューは参照不可
   •   外部結合または⾃⼰結合は不可
   •   ORDER BY句は不可
   •   UNION、EXCEPT、INTERSECT句は不可
   •   DISTINCTオプションは不可
   •   AVG、MAX、MIN、STDEV、STDEVP、VAR、または VARP 集計関数は不可
   •   ⇒ただし、SUM関数やCOUNT_BIG関数と一緒に使うことは可能


 – パフォーマンス懸念点
   • 基テーブル更新時のオーバーヘッド
   • トランザクションの同時実⾏性




                  Copyright © 2011 Insight Technology, Inc. All Rights Reserved.             40
設計フェーズ

オブジェクトの仕様の違いを理解する                                                      開発フェーズ
                                                                       開発 フェーズ
                                                                       運用フェーズ
                                                                       運用 フェーズ




 オブジェクトの仕様を理解するポイント

                    シーケンス


             パーティション

     マテリアライズドビュー

                         PL/SQL



      Copyright © 2011 Insight Technology, Inc. All Rights Reserved.             41
設計フェーズ

  4.SQL Server de PL/SQL(拡張SQL)                                                   開発フェーズ
                                                                                  開発 フェーズ
                                                                                  運用フェーズ
                                                                                  運用 フェーズ

 PL/SQL(拡張SQL)
・SQLを拡張して手続き型言語として作成可能
・業務ロジックをデータベースに実装可能
・プロシージャやファンクション、トリガー等をストアドとして定義
・SQL ServerではTransact-SQLが該当

Oracle:PL/SQL                                           SQL Server:Transact-SQL

・パッケージ、プロシージャ、                                        ・△パッケージ、プロシージャ、
 ファンクション、トリガー                                          ファンクション、トリガー
・変数、定数、CURSORの定義                                      ・○変数、定数、 CURSORの定義
・FOR LOOP、WHILE、IF⽂の使用                                ・○FOR LOOP、WHILE、IF⽂の使用
・動的SQLの使用                                             ・○動的SQLの使用
・エラーハンドリング                                            ・○エラーハンドリング
・ストアドとして定義                                            ・○ストアドとして定義




                 Copyright © 2011 Insight Technology, Inc. All Rights Reserved.             42
設計フェーズ

   SQL Server Migration Assistantとは                                                    開発フェーズ
                                                                                       開発 フェーズ
                                                                                       運用フェーズ
                                                                                       運用 フェーズ




• PL/SQLをより詳細に比較する為に・・・
  – ツールを使用してPL/SQLを比較
      • SQL Server Migration Assistant for Oracle(SSMA)


• SQL Server Migration Assistant for Oracle(SSMA)
  –   データベースのマイグレーションを分析、評価、支援するツール
  –   スキーマのマイグレーション
  –   PL/SQLをTransact-SQLにマイグレーション
  –   一部の関数やシーケンスは、SSMAがエミューレート
  –   Microsoft社から無償で提供
  –   最新は5.1。最新はDenaliにも対応(らしい)



                      Copyright © 2011 Insight Technology, Inc. All Rights Reserved.             43
設計フェーズ

 SSMAの画面                                                                                                    開発フェーズ
                                                                                                            開発 フェーズ
                                                                                                            運用フェーズ
                                                                                                            運用 フェーズ




Oracle:PL/SQL                                                   SQL Server:Transact-SQL




                                                                                                           エラー一覧




           (資料: http://blogs.msdn.com/b/ssma/archive/2010/11/30/video-creating-custom-ssma-report.aspx )




                         Copyright © 2011 Insight Technology, Inc. All Rights Reserved.                               44
設計フェーズ

         SSMAの結果                                                                                                               開発フェーズ
                                                                                                                               開発 フェーズ
                                                                                                                               運用フェーズ
                                                                                                                               運用 フェーズ


SSMAによるオブジェクト変換率
 オブジェクト変換率(PL/SQL以外)                                            PL/SQL変換率
        Object type   Total With errors Converted                          Object type                    Total With errors Converted
index                  2735         17              99%       function                                      294         74       75%
schema                   21         18              14%       package                                      1958       1571       20%
sequence                177          0            100%        packaged-function                            9640       2899       70%
synonym                  16         15                6%      packaged-procedure                           2429       1104       55%
table                  7008       867               88%       private-packaged-function                    1239        466       62%
view                   1100       269               76%       private-packaged-procedure                   1693        452       73%
Total                 11057      1186              89%        procedure                                    1145        586       49%
                                                              trigger                                      2744       1705       38%
                                                              Total                                       21142      8857        58%

                                                                タイプ型変換率
                                                                           Object type                    Total With errors Converted
                                                               collection-type                                6          6         0%
                                                               object-type                                    6          6         0%
                                                               packaged-type                               2927          0      100%
                                                               private-packaged-type                        561          0      100%
                                                               Total                                      3500          12      100%




                                         Copyright © 2011 Insight Technology, Inc. All Rights Reserved.                                  45
設計フェーズ

 PL/SQL変換エラーTop.8                                                                          開発フェーズ
                                                                                           開発 フェーズ
                                                                                           運用フェーズ
                                                                                           運用 フェーズ




                                関数一覧(使用数別)

               SQL文が不正                                                     58168

             関数が変換不可                     13594

        %type等型の変数の使用                  6562

   SQLCODE、SQLERRMの不正使用                4223

動的に作成されたクエリは手動変換が必要                    2029

関数内ではグローバルカーソルを使用不可                    1672

 定義が不正な変数(%type等)の使用                   979

           ROWIDは使用不可                  449

                                   0                         20000                 40000    60000
                                         使用数




                 Copyright © 2011 Insight Technology, Inc. All Rights Reserved.                      46
設計フェーズ

     PL/SQL変換エラーTop.8 詳細                                                                                  開発フェーズ
                                                                                                          開発 フェーズ
                                                                                                          運用フェーズ
                                                                                                          運用 フェーズ


 Package/Procedure/Function/Trigger/View
Messages                       Cause                                                         Workaround      件数


SQL文の不正
 - SELECT句のカラム                 VIEWのコンパイルエラー                                                 VIEWのエラー原因を特定
 - INTO句で指定した変数                変数の宣言エラー(%type等)                                              変数の定義し直し      58168
 - SQLの構文が不正                   SQL Serverに未対応のSQL文                                           SQL文の書き換え
                                 (Merge文)


関数が変換不可
                               ⇒別ページ参照                                                       ⇒別ページ参照          13594
(SUBSTRB関数やDBMS_OUTPUTなど)

%type等型の変数の使用                  SQL Serverに%typeや%rowtypeが存在しない                               変数の定義し直し          6562

                               EXCEPTION ブロック外でSQLCODE、SQLERRM
SQLCODE、SQLERRMの不正使用                                           仕様の確認、構文の修正                                     4223
                               を使用

                               動的SQL⾃体は実⾏可
動的に作成されたクエリは手動での変換が必要                                                                        変換後のSQL文を確認       2029
                               組み替えられたSQLは確認が必要

関数内ではグローバルカーソルを使用不可            グローバルカーソル                                                                       1672

定義が不正な変数(%type等)の使用            %typeで定義された変数を計算式等で使用している変数の定義を確認                                               979

ROWIDは使用不可                     ROWIDはSQL Serverに存在せず                                         主キーを指定するよう変更      449




                            Copyright © 2011 Insight Technology, Inc. All Rights Reserved.                          47
設計フェーズ

関数エラー Top.8                                                                                  開発フェーズ
                                                                                             開発 フェーズ
                                                                                             運用フェーズ
                                                                                             運用 フェーズ




                                      関数一覧(使用数別)

     SUBSTRB                                        12067

    LENGTHB         530

        MAX         168

     UTL_FILE       166

      INSTRB        128

    DBMS_SQL        100

DBMS_OUTPUT         91

TO_MULTI_BYTE       85

                0                            5000                                    10000   15000
                                              使用数




                          Copyright © 2011 Insight Technology, Inc. All Rights Reserved.               48
設計フェーズ

      関数エラー Top.8 詳細                                                                            開発フェーズ
                                                                                                開発 フェーズ
                                                                                                運用フェーズ
                                                                                                運用 フェーズ




Function        Cause                                                                    件数
SUBSTRB         SUBSTRB関数に対応する関数がない                                                           12067
LENGTHB         LENGTHB関数に対応する関数がない                                                            530
                GROUP BY句が不正
MAX              GROUP BYで関数を使用                                                                168
                 不正なVIEWの使用
UTL_FILE        ほとんどがUTL_FILE.FCLOSE_ALLが使用不可                                                  166
INSTRB          INSTRB関数に対応する関数がない                                                             128
DBMS_SQL        ほとんどがDBMS_SQL.COLUMN_VALUEが使用不可                                                100
DBMS_OUTPUT     DBMS_OUTPUT.DISABLE/ENABLEが使用不可                                                 91
TO_MULTI_BYTE   INSTRB関数に対応する関数がない                                                              85




                        Copyright © 2011 Insight Technology, Inc. All Rights Reserved.                    49
設計フェーズ

SSMAでの変換エラー Top.8 ~PL/SQL以外~                                                                        開発フェーズ
                                                                                                    開発 フェーズ
                                                                                                    運用フェーズ
                                                                                                    運用 フェーズ




  Table/Index/Synonym/Sequence
Messages                Workaround                                                        LEVEL     件数
PUBLIC SYNONYMの使用 スキーマ毎にSYNONYMを作成                                                        Warning        1797
NUMBER型の桁数未指定     仕様確認後桁数を定義                                                              Warning         182
シーケンスが変換できない            2-2参照                                                             Warning         173
一時テーブルの使用               セッション単位で一時テーブルを作成 Warning                                                          64
マテリアライズドビューの使用 2-2参照                                                                      Error            49
RANGE PARTITIONの使用 SSMAでは自動変換されない                                                         Error            41
LIST PARTITIONの 使用 2-2参照                                                                  Error            30
INDEXのカラム数が多すぎ          INDEXの見直し                                                         Error            30




                         Copyright © 2011 Insight Technology, Inc. All Rights Reserved.                       50
2-3. パフォーマンス管理ツールを理解する




     Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   51
設計フェーズ

パフォーマンス管理ツールを理解する                                                      開発フェーズ
                                                                       開発 フェーズ
                                                                       運用フェーズ
                                                                       運用 フェーズ




    パフォーマンス管理ツール
   パフォーマンスデータコレクション




      Copyright © 2011 Insight Technology, Inc. All Rights Reserved.             52
設計フェーズ

パフォーマンス管理ツール                                                                    開発フェーズ
                                                                                開発 フェーズ
                                                                                運用フェーズ
                                                                                運用 フェーズ




• パフォーマンスデータコレクション
 – SQL ServerやOSのパフォーマンス情報を収集
 – 過去データも参照可能(SQL Server2008)
 – OracleのEnterprise ManagerやStatspackと同等




               Copyright © 2011 Insight Technology, Inc. All Rights Reserved.             53
設計フェーズ

パフォーマンスデータコレクション                                                               開発フェーズ
                                                                               開発 フェーズ
                                                                               運用フェーズ
                                                                               運用 フェーズ



• クエリ統計
 – 負荷の高いSQLTOP10の抽出が容易

                                    •クエリ統計によるレポート画面
 •   実⾏時間の⻑いSQL
 •   CPU使用時間の⻑いSQL
 •   物理読み込みの多いSQL
 •   論理書き込みの多いSQL




              Copyright © 2011 Insight Technology, Inc. All Rights Reserved.             54
設計フェーズ

パフォーマンスデータコレクション                                                              開発フェーズ
                                                                              開発 フェーズ
                                                                              運用フェーズ
                                                                              運用 フェーズ


• 抽出したSQLのチューニング
 ①.SQLの
 統計データ表示

                                                                             ②.サンプリ
                                                                             ングされた待
                                                                             機情報表示




                                                   ③.SQLの
                                                   実⾏計画表示




           •Copyright © 2011 Insight Technology, Inc. All Rights Reserved.              55
3.まとめ
           3.まとめ




Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   56
まとめ

• データを格納するハコとしてはどのデータベー
  スも同じ
 ⇒僅かな機能差や実績が製品の差になっている
• 違いを理解することで、適材適所にデータベー
  スを配置することができる
                               更に・・・


・お客様に対して攻めの提案が可能
・設計・開発時の手戻り削減
・運用後の障害発生を回避

      •Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   57
ひとつのデータベース技術だけでは生き残れない




       Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   58
•無断転載を禁ず

•この文書はあくまでも参考資料であり、掲載されている情報は予告なしに変更されることがあります。
•株式会社インサイトテクノロジーは本書の内容に関していかなる保証もしません。また、本書の内容に関連したいかな
る損害についても責任を負いかねます。
•本書で使用している製品やサービス名の名称は、各社の商標または登録商標です。




                 Copyright © 2011 Insight Technology, Inc. All Rights Reserved.   59

More Related Content

What's hot

20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQLRyusuke Kajiyama
 
Corruption And Revive - db tech showcase 2013 特濃JPOUG
Corruption And Revive - db tech showcase 2013 特濃JPOUGCorruption And Revive - db tech showcase 2013 特濃JPOUG
Corruption And Revive - db tech showcase 2013 特濃JPOUGRyota Watabe
 
バックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違い
バックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違いバックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違い
バックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違いRyota Watabe
 
OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)
OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)
OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)Ryota Watabe
 
パフォーマンスタブ見れないんですけど!! 株式会社コーソル 河野 敏彦
パフォーマンスタブ見れないんですけど!! 株式会社コーソル 河野 敏彦パフォーマンスタブ見れないんですけど!! 株式会社コーソル 河野 敏彦
パフォーマンスタブ見れないんですけど!! 株式会社コーソル 河野 敏彦CO-Sol for Community
 
Oracle SQL Developerを使い倒そう! 株式会社コーソル 守田 典男
Oracle SQL Developerを使い倒そう! 株式会社コーソル 守田 典男Oracle SQL Developerを使い倒そう! 株式会社コーソル 守田 典男
Oracle SQL Developerを使い倒そう! 株式会社コーソル 守田 典男CO-Sol for Community
 
第九回中国地方DB勉強会 in 米子 MySQL 5.7+
第九回中国地方DB勉強会 in 米子 MySQL 5.7+第九回中国地方DB勉強会 in 米子 MySQL 5.7+
第九回中国地方DB勉強会 in 米子 MySQL 5.7+Ryusuke Kajiyama
 
MySQLインストールのお作法
MySQLインストールのお作法MySQLインストールのお作法
MySQLインストールのお作法Meiji Kimura
 
Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能
Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能
Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能Ryota Watabe
 
PostgreSQL V9 レプリケーション解説
PostgreSQL V9 レプリケーション解説PostgreSQL V9 レプリケーション解説
PostgreSQL V9 レプリケーション解説Masao Fujii
 
障害とオペミスに備える! ~Oracle Databaseのバックアップを考えよう~
障害とオペミスに備える! ~Oracle Databaseのバックアップを考えよう~障害とオペミスに備える! ~Oracle Databaseのバックアップを考えよう~
障害とオペミスに備える! ~Oracle Databaseのバックアップを考えよう~Shinnosuke Akita
 
PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介
PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介
PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介Masao Fujii
 
PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介Masao Fujii
 
Oracle Database Cloud Service を使ってみよう! 株式会社コーソル 守田 典男
Oracle Database Cloud Service を使ってみよう! 株式会社コーソル 守田 典男Oracle Database Cloud Service を使ってみよう! 株式会社コーソル 守田 典男
Oracle Database Cloud Service を使ってみよう! 株式会社コーソル 守田 典男CO-Sol for Community
 
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうかWebアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうかChihiro Ito
 
MySQL57 Update@OSC Fukuoka 20151003
MySQL57 Update@OSC Fukuoka 20151003MySQL57 Update@OSC Fukuoka 20151003
MySQL57 Update@OSC Fukuoka 20151003Shinya Sugiyama
 
DBP-008_SQL Server on Azure VM 最新情報とベスト プラクティス
DBP-008_SQL Server on Azure VM 最新情報とベスト プラクティスDBP-008_SQL Server on Azure VM 最新情報とベスト プラクティス
DBP-008_SQL Server on Azure VM 最新情報とベスト プラクティスdecode2016
 
Sql server 構築 運用 tips
Sql server 構築 運用 tipsSql server 構築 運用 tips
Sql server 構築 運用 tipsMasayuki Ozawa
 
[db tech showcase 2017 Tokyo] A23 - MySQLのセキュリティ関連機能の現状
[db tech showcase 2017 Tokyo] A23 - MySQLのセキュリティ関連機能の現状[db tech showcase 2017 Tokyo] A23 - MySQLのセキュリティ関連機能の現状
[db tech showcase 2017 Tokyo] A23 - MySQLのセキュリティ関連機能の現状Ryusuke Kajiyama
 
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニングしばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニングオラクルエンジニア通信
 

What's hot (20)

20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL20150131 ChugokuDB-Shimane-MySQL
20150131 ChugokuDB-Shimane-MySQL
 
Corruption And Revive - db tech showcase 2013 特濃JPOUG
Corruption And Revive - db tech showcase 2013 特濃JPOUGCorruption And Revive - db tech showcase 2013 特濃JPOUG
Corruption And Revive - db tech showcase 2013 特濃JPOUG
 
バックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違い
バックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違いバックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違い
バックアップと障害復旧から考えるOracle Database, MySQL, PostgreSQLの違い
 
OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)
OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)
OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)
 
パフォーマンスタブ見れないんですけど!! 株式会社コーソル 河野 敏彦
パフォーマンスタブ見れないんですけど!! 株式会社コーソル 河野 敏彦パフォーマンスタブ見れないんですけど!! 株式会社コーソル 河野 敏彦
パフォーマンスタブ見れないんですけど!! 株式会社コーソル 河野 敏彦
 
Oracle SQL Developerを使い倒そう! 株式会社コーソル 守田 典男
Oracle SQL Developerを使い倒そう! 株式会社コーソル 守田 典男Oracle SQL Developerを使い倒そう! 株式会社コーソル 守田 典男
Oracle SQL Developerを使い倒そう! 株式会社コーソル 守田 典男
 
第九回中国地方DB勉強会 in 米子 MySQL 5.7+
第九回中国地方DB勉強会 in 米子 MySQL 5.7+第九回中国地方DB勉強会 in 米子 MySQL 5.7+
第九回中国地方DB勉強会 in 米子 MySQL 5.7+
 
MySQLインストールのお作法
MySQLインストールのお作法MySQLインストールのお作法
MySQLインストールのお作法
 
Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能
Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能
Standard Edition 2でも使えるOracle Database 12c Release 2オススメ新機能
 
PostgreSQL V9 レプリケーション解説
PostgreSQL V9 レプリケーション解説PostgreSQL V9 レプリケーション解説
PostgreSQL V9 レプリケーション解説
 
障害とオペミスに備える! ~Oracle Databaseのバックアップを考えよう~
障害とオペミスに備える! ~Oracle Databaseのバックアップを考えよう~障害とオペミスに備える! ~Oracle Databaseのバックアップを考えよう~
障害とオペミスに備える! ~Oracle Databaseのバックアップを考えよう~
 
PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介
PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介
PostgreSQL9.1同期レプリケーションとPacemakerによる高可用クラスタ化の紹介
 
PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介
 
Oracle Database Cloud Service を使ってみよう! 株式会社コーソル 守田 典男
Oracle Database Cloud Service を使ってみよう! 株式会社コーソル 守田 典男Oracle Database Cloud Service を使ってみよう! 株式会社コーソル 守田 典男
Oracle Database Cloud Service を使ってみよう! 株式会社コーソル 守田 典男
 
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうかWebアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
 
MySQL57 Update@OSC Fukuoka 20151003
MySQL57 Update@OSC Fukuoka 20151003MySQL57 Update@OSC Fukuoka 20151003
MySQL57 Update@OSC Fukuoka 20151003
 
DBP-008_SQL Server on Azure VM 最新情報とベスト プラクティス
DBP-008_SQL Server on Azure VM 最新情報とベスト プラクティスDBP-008_SQL Server on Azure VM 最新情報とベスト プラクティス
DBP-008_SQL Server on Azure VM 最新情報とベスト プラクティス
 
Sql server 構築 運用 tips
Sql server 構築 運用 tipsSql server 構築 運用 tips
Sql server 構築 運用 tips
 
[db tech showcase 2017 Tokyo] A23 - MySQLのセキュリティ関連機能の現状
[db tech showcase 2017 Tokyo] A23 - MySQLのセキュリティ関連機能の現状[db tech showcase 2017 Tokyo] A23 - MySQLのセキュリティ関連機能の現状
[db tech showcase 2017 Tokyo] A23 - MySQLのセキュリティ関連機能の現状
 
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニングしばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
 

Viewers also liked

Sql server エンジニアに知ってもらいたい!! sql server チューニングアプローチ
Sql server エンジニアに知ってもらいたい!! sql server チューニングアプローチSql server エンジニアに知ってもらいたい!! sql server チューニングアプローチ
Sql server エンジニアに知ってもらいたい!! sql server チューニングアプローチMasayuki Ozawa
 
SQL Server運用実践 - 3年間80台の運用経験から20の教訓
SQL Server運用実践 - 3年間80台の運用経験から20の教訓SQL Server運用実践 - 3年間80台の運用経験から20の教訓
SQL Server運用実践 - 3年間80台の運用経験から20の教訓貴仁 大和屋
 
Sql server これだけはやっておこう 最終版
Sql server これだけはやっておこう 最終版Sql server これだけはやっておこう 最終版
Sql server これだけはやっておこう 最終版elanlilac
 
STelligence Savvius Thai Datasheet
STelligence Savvius Thai DatasheetSTelligence Savvius Thai Datasheet
STelligence Savvius Thai DatasheetAruj Thirawat
 
FRT Vol. 5 クラウド時代の企業アプリケーションとマーケティング
FRT Vol. 5 クラウド時代の企業アプリケーションとマーケティングFRT Vol. 5 クラウド時代の企業アプリケーションとマーケティング
FRT Vol. 5 クラウド時代の企業アプリケーションとマーケティングYasunari Goto (iChain. Inc.)
 
Global Knowledge Training Courses & Promotion 2015-Sep
Global Knowledge Training Courses & Promotion 2015-SepGlobal Knowledge Training Courses & Promotion 2015-Sep
Global Knowledge Training Courses & Promotion 2015-SepAruj Thirawat
 
Trabalhando com o Moodle e a Comunidade
Trabalhando com o Moodle e a ComunidadeTrabalhando com o Moodle e a Comunidade
Trabalhando com o Moodle e a ComunidadeDaniel Neis
 
Caching Data For Performance
Caching Data For PerformanceCaching Data For Performance
Caching Data For PerformanceDave Ross
 
MoodleMoot Brasil 2011 - O Moodle na UFSC (Infraestrutura de TI)
MoodleMoot Brasil 2011 - O Moodle na UFSC (Infraestrutura de TI)MoodleMoot Brasil 2011 - O Moodle na UFSC (Infraestrutura de TI)
MoodleMoot Brasil 2011 - O Moodle na UFSC (Infraestrutura de TI)Daniel Neis
 
ThaiCert Phishing and Malicious Code Infographic 2015
ThaiCert Phishing and Malicious Code Infographic 2015ThaiCert Phishing and Malicious Code Infographic 2015
ThaiCert Phishing and Malicious Code Infographic 2015Aruj Thirawat
 
OSSV [Open System SnapVault]
OSSV [Open System SnapVault]OSSV [Open System SnapVault]
OSSV [Open System SnapVault]Ashwin Pawar
 
SQL Server 現状診断サービス ご紹介資料
SQL Server 現状診断サービス ご紹介資料SQL Server 現状診断サービス ご紹介資料
SQL Server 現状診断サービス ご紹介資料Masayuki Ozawa
 
SQL Server 簡易診断サービス ご紹介資料
SQL Server 簡易診断サービス ご紹介資料SQL Server 簡易診断サービス ご紹介資料
SQL Server 簡易診断サービス ご紹介資料Masayuki Ozawa
 
Driver development – memory management
Driver development – memory managementDriver development – memory management
Driver development – memory managementVandana Salve
 
Board support package_on_linux
Board support package_on_linuxBoard support package_on_linux
Board support package_on_linuxVandana Salve
 
Linux for embedded_systems
Linux for embedded_systemsLinux for embedded_systems
Linux for embedded_systemsVandana Salve
 
Kernel module programming
Kernel module programmingKernel module programming
Kernel module programmingVandana Salve
 
HANAのハナシの基本のき
HANAのハナシの基本のきHANAのハナシの基本のき
HANAのハナシの基本のきKoji Shinkubo
 

Viewers also liked (20)

Sql server エンジニアに知ってもらいたい!! sql server チューニングアプローチ
Sql server エンジニアに知ってもらいたい!! sql server チューニングアプローチSql server エンジニアに知ってもらいたい!! sql server チューニングアプローチ
Sql server エンジニアに知ってもらいたい!! sql server チューニングアプローチ
 
SQL Server 入門
SQL Server 入門SQL Server 入門
SQL Server 入門
 
SQL Server運用実践 - 3年間80台の運用経験から20の教訓
SQL Server運用実践 - 3年間80台の運用経験から20の教訓SQL Server運用実践 - 3年間80台の運用経験から20の教訓
SQL Server運用実践 - 3年間80台の運用経験から20の教訓
 
Sql server これだけはやっておこう 最終版
Sql server これだけはやっておこう 最終版Sql server これだけはやっておこう 最終版
Sql server これだけはやっておこう 最終版
 
STelligence Savvius Thai Datasheet
STelligence Savvius Thai DatasheetSTelligence Savvius Thai Datasheet
STelligence Savvius Thai Datasheet
 
FRT Vol. 5 クラウド時代の企業アプリケーションとマーケティング
FRT Vol. 5 クラウド時代の企業アプリケーションとマーケティングFRT Vol. 5 クラウド時代の企業アプリケーションとマーケティング
FRT Vol. 5 クラウド時代の企業アプリケーションとマーケティング
 
Global Knowledge Training Courses & Promotion 2015-Sep
Global Knowledge Training Courses & Promotion 2015-SepGlobal Knowledge Training Courses & Promotion 2015-Sep
Global Knowledge Training Courses & Promotion 2015-Sep
 
Trabalhando com o Moodle e a Comunidade
Trabalhando com o Moodle e a ComunidadeTrabalhando com o Moodle e a Comunidade
Trabalhando com o Moodle e a Comunidade
 
Caching Data For Performance
Caching Data For PerformanceCaching Data For Performance
Caching Data For Performance
 
MoodleMoot Brasil 2011 - O Moodle na UFSC (Infraestrutura de TI)
MoodleMoot Brasil 2011 - O Moodle na UFSC (Infraestrutura de TI)MoodleMoot Brasil 2011 - O Moodle na UFSC (Infraestrutura de TI)
MoodleMoot Brasil 2011 - O Moodle na UFSC (Infraestrutura de TI)
 
ThaiCert Phishing and Malicious Code Infographic 2015
ThaiCert Phishing and Malicious Code Infographic 2015ThaiCert Phishing and Malicious Code Infographic 2015
ThaiCert Phishing and Malicious Code Infographic 2015
 
OSSV [Open System SnapVault]
OSSV [Open System SnapVault]OSSV [Open System SnapVault]
OSSV [Open System SnapVault]
 
SQL Server 現状診断サービス ご紹介資料
SQL Server 現状診断サービス ご紹介資料SQL Server 現状診断サービス ご紹介資料
SQL Server 現状診断サービス ご紹介資料
 
SQL Server 簡易診断サービス ご紹介資料
SQL Server 簡易診断サービス ご紹介資料SQL Server 簡易診断サービス ご紹介資料
SQL Server 簡易診断サービス ご紹介資料
 
Driver development – memory management
Driver development – memory managementDriver development – memory management
Driver development – memory management
 
Board support package_on_linux
Board support package_on_linuxBoard support package_on_linux
Board support package_on_linux
 
Sql server 運用 101
Sql server 運用 101Sql server 運用 101
Sql server 運用 101
 
Linux for embedded_systems
Linux for embedded_systemsLinux for embedded_systems
Linux for embedded_systems
 
Kernel module programming
Kernel module programmingKernel module programming
Kernel module programming
 
HANAのハナシの基本のき
HANAのハナシの基本のきHANAのハナシの基本のき
HANAのハナシの基本のき
 

Similar to [INSIGHT OUT 2011] C12 50分で理解する SQL Serverでできることできないこと(uchiyama)

MySQLをGUIで触ろう!! ~MySQL Workbenchのご紹介~
MySQLをGUIで触ろう!! ~MySQL Workbenchのご紹介~MySQLをGUIで触ろう!! ~MySQL Workbenchのご紹介~
MySQLをGUIで触ろう!! ~MySQL Workbenchのご紹介~yoyamasaki
 
オンプレでもクラウドでも データベースサーバの運用
オンプレでもクラウドでも データベースサーバの運用オンプレでもクラウドでも データベースサーバの運用
オンプレでもクラウドでも データベースサーバの運用elanlilac
 
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Monadic Programmingのススメ - Functional Reactive ProgrammingへのアプローチMonadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Monadic Programmingのススメ - Functional Reactive ProgrammingへのアプローチTomoharu ASAMI
 
20131213 OSC enterprise
20131213 OSC enterprise20131213 OSC enterprise
20131213 OSC enterprisesamemoon
 
Scalaz-StreamによるFunctional Reactive Programming
Scalaz-StreamによるFunctional Reactive ProgrammingScalaz-StreamによるFunctional Reactive Programming
Scalaz-StreamによるFunctional Reactive ProgrammingTomoharu ASAMI
 
2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)
2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)
2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)Operation Lab, LLC.
 
経営を支えるIT部門実現の記録2005
経営を支えるIT部門実現の記録2005経営を支えるIT部門実現の記録2005
経営を支えるIT部門実現の記録2005Makoto Shimizu
 
20150920 中国地方db勉強会
20150920 中国地方db勉強会20150920 中国地方db勉強会
20150920 中国地方db勉強会yoyamasaki
 
Intro2 Sqlanalyzer
Intro2 SqlanalyzerIntro2 Sqlanalyzer
Intro2 Sqlanalyzersaeka
 
OpsWorks aws-cli#11
OpsWorks aws-cli#11OpsWorks aws-cli#11
OpsWorks aws-cli#11Yuta Shimada
 
あるインフラエンジニアの過去と未来
あるインフラエンジニアの過去と未来あるインフラエンジニアの過去と未来
あるインフラエンジニアの過去と未来Tsubasa Hirota
 
[C14] ソーシャル ゲーム基盤を支える SQL Server by Takashi Inaba
[C14] ソーシャル ゲーム基盤を支える SQL Server by Takashi Inaba[C14] ソーシャル ゲーム基盤を支える SQL Server by Takashi Inaba
[C14] ソーシャル ゲーム基盤を支える SQL Server by Takashi InabaInsight Technology, Inc.
 
Sql server 2014 新機能の紹介
Sql server 2014 新機能の紹介Sql server 2014 新機能の紹介
Sql server 2014 新機能の紹介Oda Shinsuke
 
スマートフォンの徹底検証とWebパフォーマンス
スマートフォンの徹底検証とWebパフォーマンススマートフォンの徹底検証とWebパフォーマンス
スマートフォンの徹底検証とWebパフォーマンスNoritaka Baba
 
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイントKentaro Matsui
 
SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦
SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦
SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦CO-Sol for Community
 

Similar to [INSIGHT OUT 2011] C12 50分で理解する SQL Serverでできることできないこと(uchiyama) (20)

MySQLをGUIで触ろう!! ~MySQL Workbenchのご紹介~
MySQLをGUIで触ろう!! ~MySQL Workbenchのご紹介~MySQLをGUIで触ろう!! ~MySQL Workbenchのご紹介~
MySQLをGUIで触ろう!! ~MySQL Workbenchのご紹介~
 
Eight meets AWS
Eight meets AWSEight meets AWS
Eight meets AWS
 
オンプレでもクラウドでも データベースサーバの運用
オンプレでもクラウドでも データベースサーバの運用オンプレでもクラウドでも データベースサーバの運用
オンプレでもクラウドでも データベースサーバの運用
 
Play jjug2012spring
Play jjug2012springPlay jjug2012spring
Play jjug2012spring
 
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Monadic Programmingのススメ - Functional Reactive ProgrammingへのアプローチMonadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
 
20131213 OSC enterprise
20131213 OSC enterprise20131213 OSC enterprise
20131213 OSC enterprise
 
Scalaz-StreamによるFunctional Reactive Programming
Scalaz-StreamによるFunctional Reactive ProgrammingScalaz-StreamによるFunctional Reactive Programming
Scalaz-StreamによるFunctional Reactive Programming
 
2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)
2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)
2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)
 
Dockerとdev ops
Dockerとdev opsDockerとdev ops
Dockerとdev ops
 
経営を支えるIT部門実現の記録2005
経営を支えるIT部門実現の記録2005経営を支えるIT部門実現の記録2005
経営を支えるIT部門実現の記録2005
 
Apex Test Plusの紹介
Apex Test Plusの紹介Apex Test Plusの紹介
Apex Test Plusの紹介
 
20150920 中国地方db勉強会
20150920 中国地方db勉強会20150920 中国地方db勉強会
20150920 中国地方db勉強会
 
Intro2 Sqlanalyzer
Intro2 SqlanalyzerIntro2 Sqlanalyzer
Intro2 Sqlanalyzer
 
OpsWorks aws-cli#11
OpsWorks aws-cli#11OpsWorks aws-cli#11
OpsWorks aws-cli#11
 
あるインフラエンジニアの過去と未来
あるインフラエンジニアの過去と未来あるインフラエンジニアの過去と未来
あるインフラエンジニアの過去と未来
 
[C14] ソーシャル ゲーム基盤を支える SQL Server by Takashi Inaba
[C14] ソーシャル ゲーム基盤を支える SQL Server by Takashi Inaba[C14] ソーシャル ゲーム基盤を支える SQL Server by Takashi Inaba
[C14] ソーシャル ゲーム基盤を支える SQL Server by Takashi Inaba
 
Sql server 2014 新機能の紹介
Sql server 2014 新機能の紹介Sql server 2014 新機能の紹介
Sql server 2014 新機能の紹介
 
スマートフォンの徹底検証とWebパフォーマンス
スマートフォンの徹底検証とWebパフォーマンススマートフォンの徹底検証とWebパフォーマンス
スマートフォンの徹底検証とWebパフォーマンス
 
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント
 
SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦
SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦
SQL Developerって必要ですか? 株式会社コーソル 河野 敏彦
 

More from Insight Technology, Inc.

グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?Insight Technology, Inc.
 
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~Insight Technology, Inc.
 
事例を通じて機械学習とは何かを説明する
事例を通じて機械学習とは何かを説明する事例を通じて機械学習とは何かを説明する
事例を通じて機械学習とは何かを説明するInsight Technology, Inc.
 
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーンInsight Technology, Inc.
 
MBAAで覚えるDBREの大事なおしごと
MBAAで覚えるDBREの大事なおしごとMBAAで覚えるDBREの大事なおしごと
MBAAで覚えるDBREの大事なおしごとInsight Technology, Inc.
 
グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?Insight Technology, Inc.
 
DBREから始めるデータベースプラットフォーム
DBREから始めるデータベースプラットフォームDBREから始めるデータベースプラットフォーム
DBREから始めるデータベースプラットフォームInsight Technology, Inc.
 
SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門Insight Technology, Inc.
 
db tech showcase2019オープニングセッション @ 森田 俊哉
db tech showcase2019オープニングセッション @ 森田 俊哉 db tech showcase2019オープニングセッション @ 森田 俊哉
db tech showcase2019オープニングセッション @ 森田 俊哉 Insight Technology, Inc.
 
db tech showcase2019 オープニングセッション @ 石川 雅也
db tech showcase2019 オープニングセッション @ 石川 雅也db tech showcase2019 オープニングセッション @ 石川 雅也
db tech showcase2019 オープニングセッション @ 石川 雅也Insight Technology, Inc.
 
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー Insight Technology, Inc.
 
難しいアプリケーション移行、手軽に試してみませんか?
難しいアプリケーション移行、手軽に試してみませんか?難しいアプリケーション移行、手軽に試してみませんか?
難しいアプリケーション移行、手軽に試してみませんか?Insight Technology, Inc.
 
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介Insight Technology, Inc.
 
そのデータベース、クラウドで使ってみませんか?
そのデータベース、クラウドで使ってみませんか?そのデータベース、クラウドで使ってみませんか?
そのデータベース、クラウドで使ってみませんか?Insight Technology, Inc.
 
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...Insight Technology, Inc.
 
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。 複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。 Insight Technology, Inc.
 
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...Insight Technology, Inc.
 
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]Insight Technology, Inc.
 

More from Insight Technology, Inc. (20)

グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?
 
Docker and the Oracle Database
Docker and the Oracle DatabaseDocker and the Oracle Database
Docker and the Oracle Database
 
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
 
事例を通じて機械学習とは何かを説明する
事例を通じて機械学習とは何かを説明する事例を通じて機械学習とは何かを説明する
事例を通じて機械学習とは何かを説明する
 
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
 
MBAAで覚えるDBREの大事なおしごと
MBAAで覚えるDBREの大事なおしごとMBAAで覚えるDBREの大事なおしごと
MBAAで覚えるDBREの大事なおしごと
 
グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?
 
DBREから始めるデータベースプラットフォーム
DBREから始めるデータベースプラットフォームDBREから始めるデータベースプラットフォーム
DBREから始めるデータベースプラットフォーム
 
SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門
 
Lunch & Learn, AWS NoSQL Services
Lunch & Learn, AWS NoSQL ServicesLunch & Learn, AWS NoSQL Services
Lunch & Learn, AWS NoSQL Services
 
db tech showcase2019オープニングセッション @ 森田 俊哉
db tech showcase2019オープニングセッション @ 森田 俊哉 db tech showcase2019オープニングセッション @ 森田 俊哉
db tech showcase2019オープニングセッション @ 森田 俊哉
 
db tech showcase2019 オープニングセッション @ 石川 雅也
db tech showcase2019 オープニングセッション @ 石川 雅也db tech showcase2019 オープニングセッション @ 石川 雅也
db tech showcase2019 オープニングセッション @ 石川 雅也
 
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
 
難しいアプリケーション移行、手軽に試してみませんか?
難しいアプリケーション移行、手軽に試してみませんか?難しいアプリケーション移行、手軽に試してみませんか?
難しいアプリケーション移行、手軽に試してみませんか?
 
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
 
そのデータベース、クラウドで使ってみませんか?
そのデータベース、クラウドで使ってみませんか?そのデータベース、クラウドで使ってみませんか?
そのデータベース、クラウドで使ってみませんか?
 
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
 
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。 複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
 
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
 
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
 

Recently uploaded

[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 

Recently uploaded (10)

[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 

[INSIGHT OUT 2011] C12 50分で理解する SQL Serverでできることできないこと(uchiyama)

  • 1. 50分で理解する SQL Serverでできることできないこと 株式会社インサイトテクノロジー テクノロジーソリューション部 内山 義夫 Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 1
  • 2. Agenda • 1.SQL Serverってどうなの? • 2.SQL Serverでできることできないこと – 2-1.ロックの仕様の違いを理解する – 2-2.オブジェクトの仕様の違いを理解する – 2-3.パフォーマンス管理ツールを理解する • 3.まとめ Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 2
  • 3. 1. SQL Serverってどうなの? Serverってどうなの? Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 3
  • 4. SQL Serverのイメージ • SQL Serverといえば・・・? 出荷本数シェァNo.1 GUIによる高いユーザビリティ 洗練されたBI機能 オールインワンによる低コスト Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 4
  • 5. 現場の本音 これからOracle以外の これから Oracle以外で提案すると Oracle DBを覚えるのが大変 失敗した時に「何でOracleに 失敗した時に「何で しなかった」と言われそう ロック待ちが多発 SQL Server Serverができる⼈ するんじゃない? って誰かいたっけ? チューニングって できないんでしょ? この前導入した案件は うまくいかなかった らしい・・・ •アプリケーション開発者 •お客様に提案する⽴場の⼈ Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 5
  • 6. データベースの現実 • データベースのデファクトスタンダードは間違いなくOracle • ただし、一昔前のように何でもOracle、というわけではなく なってきつつある ⇒適材適所にデータベースを配置 • トップダウンでデータベースが決まるケースも・・・ ⇒Oracleしか知らないでは済まされなくなってきている • ひとつのデータベース技術だけでは生き残れない • SQL Serverも⻤熱い(弊社⼩幡談) DBでできることできないことを正しく理解することが重要! Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 6
  • 7. 2.SQL Serverでできることできないこと Serverで Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 7
  • 8. SQL Serverでできることできないこと • 理解すべきポイント 設計フェーズ 開発フェーズ 運用フェーズ •ロックの仕様の •オブジェクトの •パフォーマンス 違いを理解する 仕様の違いを 管理ツールを 理解する 理解する フェーズが後になればなるほど手戻りも増大! Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 8
  • 9. 2-1.ロックの仕様の違いを理解する 1.ロックの仕様の違いを理解する Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 9
  • 10. 設計フェーズ ロックの仕様の違いを理解する 開発フェーズ 運用フェーズ 運用 フェーズ ロックの仕様の違いを理解するポイント •トランザクション分離レベル •ロックエスカレーション Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 10
  • 11. 設計フェーズ ロックの仕様の違いを理解する 開発フェーズ 運用フェーズ 運用 フェーズ • トランザクション分離レベル – 同時に複数のトランザクションが実⾏した時の影響を定義 – Oracle、SQL Server共にread committed – Read Committed…コミットしたデータが読める隔離レベル Read Committed Oracle マルチバージョニング⽅式(オプティミスティック同時実⾏制御) - 対象となるリソースに対して排他ロックを取得 - 排他ロック取得中でも更新前コミット済みデータが⾒れる - 更新前データはUndo Segmentに保持 SQL Server ロック⽅式(ペシミスティック同時実⾏制御) - 対象となるリソースに対して排他ロックを取得 - 排他ロック取得中は他の処理を待機させる Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 11
  • 12. 設計フェーズ OracleとSQL Serverの動き方 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ Oracle SQL Server マルチバージョニング⽅式 ロック⽅式 トランザクションA開始 トランザクションA開始 トランザクションB開始 トランザクションB開始 UserA:400 UserA:400 UserB:200 UserB:200 Update 売上 Update 売上 Set 売上 = 売上 + 100 Set 売上 = 売上 + 100 Where ID = ‘UserA’; Where ID = ‘UserA’; UserA:500 UserA:500 UserB:200 UserB:200 Select * From 売上; Select * From 売上; UserA:500 トランザクションAが ロック待ち UserB:200 更新する前の値を参照 UserA:400 Commit; Commit; UserB:200 Commit; Commit; ロック待ち解放 UserA:500 UserB:200 Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 12
  • 13. 設計フェーズ トランザクション分離レベルの変更 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ • Oracleの仕様を前提に開発する場合、SQL Serverのトランザ クション分離レベルをRead Committed Snapshotに変更する SQL Server Read Committed Oracle Read Committed ≒ Read Committed Snapshot Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 13
  • 14. 設計フェーズ Read Committed Snapshot時の動き 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ Select⽂実⾏時 トランザクションA開始 トランザクションB開始 UserA:400 インデックスの UserB:200 Update 売上 有無は関係無 Set 売上 = 売上 + 100 Where ID = ‘UserA’; UserA:500 UserB:200 Select * From 売上; 更新前データは tempDBに保持 トランザクションAが 更新する前の値を参照 UserA:400 Commit; UserB:200 Commit; Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 14
  • 15. 設計フェーズ SQl ServerのRead Committed 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ • 気を付けるべきポイント – Update文やDelete文の実⾏には注意が必要! ⇒インデックスの有無で動きが大きく異なる Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 15
  • 16. 設計フェーズ OracleとSQL Serverの動き方 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ トランザクションA開始 トランザクションB開始 UserA:400 UsarB:200 Update 売上 Set 売上 = 売上 + 100 Where ID = ‘UserA’; Select * From 売上; IDにインデックス有 IDにインデックス無 トランザクションAが ロック待ち発生! 更新する前の値を参照 Commit; Commit; UserA:400 UserB:200 UserA:500 UserA:500 UserB:200 UserB:200 ロック待ち解放 Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 16
  • 17. 設計フェーズ SQL Serverのロック 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ • SQL Serverではロックを考慮した設計した設計が必要 – ⾏を大量にロックするような処理はなるべく控える – アプリケーションはできるだけショートトランザクションにする – Update文やDelete文で指定する条件の項目にはインデックスは必須 – ロック待ちやデッドックの情報を取得しておく Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 17
  • 18. 設計フェーズ ロックの仕様の違いを理解する 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ • ロックエスカレーション(SQL Serverのみ) – 粒度の⼩さいロックを変換し粒度が大きいロックにする動き – ロックエスカレーションが発生する条件 • メモリリソースのしきい値 – SQL Serverが使用するメモリの40%を超えた場合 • ロック数のしきい値 – 1SQLステートメントで5000以上のロックを取得する場合 – ロックエスカレーションを使用しないようにするには・・・ • Trace flag 1211で制御 • ※テーブル単位の場合 alter table [テーブル名] set ( LOCK_ESCALATION = DISABLE ); Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 18
  • 19. 設計フェーズ Oracleのようにした場合・・・ 開発フェーズ 運用フェーズ 運用 フェーズ トランザクション分離レベル ロックエスカレーション Read Committed Trace flag 1211に設定 Read Committed Snapshot (ロックエスカレーションOFF) オーバーヘッドはどうなるか? Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 19
  • 20. 設計フェーズ オーバーヘッド 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ • Read Committed Snapshotのオーバーヘッド 50 100 150 TPS 142 100% Read Committed 100% TPS 128 90% I/O req/sec@tempdb Read Committed Snapshot 30 30,000% I/O req/sec 30 @tempdb 10 20 • ロックエスカレーションさせない場合のリソースの変化 50 100 150 TPS Read Committed 69 100% with Lock Escalation 171 100% TPS 136 198% Memory Size@Lock Read Committed With trace flag 1211 184 108% Memory Size(MB) 100 150 200 @Lock Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 20
  • 22. 設計フェーズ オブジェクトの仕様の違いを理解する 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ オブジェクトの仕様を理解するポイント シーケンス パーティション マテリアライズドビュー PL/SQL Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 22
  • 23. 設計フェーズ オブジェクトの仕様の違いを理解する 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ オブジェクトの仕様を理解するポイント シーケンス パーティション マテリアライズドビュー PL/SQL Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 23
  • 24. 設計フェーズ SQL Server de シーケンス 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ Sequence ・連続した数値を采番するオブジェクト ・複数のセッションからでもユニークな値を采番可能 ・SQL Serverにはオブジェクトとして采番するものは存在しない ⇒采番する機能としてはIdentity属性が該当 Oracle:シーケンス SQL Server:Identity ・値を自動的に采番 ・○値を自動的に采番 ・オブジェクトとして作成 ・×オブジェクトとして作成 ・特定のカラムに依存しないで采番可能 ・×特定のカラムに依存しないで采番可能 ・増分値や開始値が設定可能 ・○増分値や開始値が設定可能 ・最大値が設定可能 ・△最大値はデータ型の最大値固定 ・⽂字列のカラムにも指定可能 ・○⽂字列のカラムにも指定可能 ・カラム属性として定義可能 ・○カラムの属性として定義可能 ・※1つのテーブルに1つのみ作成可能 Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 24
  • 25. 設計フェーズ SQL Server de シーケンス 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ • SQL Serverでシーケンスを理解するポイント: ⇒SQL ServerのIdentityでOracleのシーケンスのような動 きがどこまでできるのか? Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 25
  • 26. 設計フェーズ SQL Server de シーケンス 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ Oracle:シーケンス SQL Server:Identity ■シーケンス作成 CREATE SEQUENCE seq_1 START WITH 1 INCREMENT BY 1 MAXVALUE 1 MINVALUE 10000; ※テーブルの属性として定義する場合 ※テーブルの属性として定義する場合 CREATE TABLE table1 CREATE TABLE table1 (col1 NUMBER DEFAULT seq_1.NEXTVAL (col1 int IDENTITY(1,1), col2 NUMBER); col2 int); ■番号取得⇒更新 ■番号取得⇒更新 DECLARE v_seq NUMBER; INSERT INTO table1 (col2) SELECT seq_1.NEXTVAL INTO v_seq FROM DUAL; OUTPUT inserted.col1 VALUES(100) ; INSERT INTO table1 VALUES (v_seq,100); Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 26
  • 27. 設計フェーズ SQL Server de シーケンス 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ • ちなみに・・・ • SQL Server次期バージョンリリース ポイント シーケンスオブジェクトが追加 Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 27
  • 28. 設計フェーズ SQL Server de シーケンス 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ Oracle:シーケンス SQL Server:シーケンス ・値を自動的に采番 ・○値を自動的に采番 ・オブジェクトとして作成 ・○オブジェクトとして作成 ・特定のカラムに依存しないで采番可能 ・○特定のカラムに依存しないで采番可能 ・増分値や開始値が設定可能 ・○増分値や開始値が設定可能 ・最大値が設定可能 ・○最大値が設定可能 ・⽂字列のカラムにも指定可能 ・○⽂字列のカラムにも指定可能 ・カラム属性として定義可能 ・○カラム属性として定義可能 Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 28
  • 29. 設計フェーズ SQL Server de シーケンス 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ Oracle:シーケンス SQL Server:シーケンス ■シーケンス作成 ■シーケンス作成 CREATE SEQUENCE seq_1 CREATE SEQUENCE seq_1 AS INT START WITH 1 MINVALUE 1 INCREMENT BY 1 MAXVALUE 100000 MAXVALUE 1 START WITH 1 MINVALUE 10000; INCREMENT BY 1; ※テーブルの属性として定義する場合 ※テーブルの属性として定義する場合 CREATE TABLE table1 CREATE TABLE table1 (col1 NUMBER DEFAULT seq_1.NEXTVAL (col1 NUMBER DEFAULT NEXT VALUE col2 NUMBER); col2 NUMBER); ■番号取得⇒更新 ■番号取得⇒更新 DECLARE v_seq NUMBER; SELECT seq_1.NEXTVAL INTO v_seq FROM DUAL; DECLARE @v_seq INT = NEXT VALUE FOR seq_1; INSERT INTO table1 VALUES (v_seq,100); INSERT INTO table1 VALUES (@v_seq,100); Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 29
  • 30. 設計フェーズ オブジェクトの仕様の違いを理解する 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ オブジェクトの仕様を理解するポイント シーケンス パーティション マテリアライズドビュー PL/SQL Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 30
  • 31. 設計フェーズ SQL Server de パーティション 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ Partitioning ・1 つのテーブルを一定の基準で分割する - 複数パーティションに格納されたデータをパラレルに抽出可能 - データ抽出範囲(障害範囲)の極⼩化 ・アプリケーションから透過的 Oracle:パーティション SQL Server:パーティション ・パーティションによる負荷分散 ・○パーティションによる負荷分散 ・パーティション可能なオブジェクト ・○パーティション可能なオブジェクト -テーブル、インデックス -テーブル、インデックス ・パーティション⽅式を選択可能 ・×パーティション⽅式を選択可能 -レンジ/リスト/ハッシュ △ -レンジ/リスト/ハッシュ ・パーティション毎にバックアップが可能 ・○パーティション毎にバックアップが可能 ・障害範囲の極小化 ・○障害範囲の極小化 Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 31
  • 32. 設計フェーズ SQL Server de パーティション 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ • パーティションの種類 SQL Server レンジパーティション でも使用可能 リストパーティション ハッシュパーティション 売上テーブル 売上テーブル 売上テーブル date tokid Id 2008 TOKA 1 2008 2008年 TOKA 得意先A 103 Hash key 1 2008 TOKA 177 date tokid 2009 TOKB 2 2009 2009年 TOKB 得意先B 333 Hash key 2 2009 TOKB 457 date Tokid 2010 TOKC 8 2010 2010年 TOKC 得意先C 128 Hash key 3 2010 TOKC 134 date tokid 2011 TOKD 9 2011 2011年 TOKZ その他 113 Hash key 4 2011 TOKN 198 Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 32
  • 33. 設計フェーズ SQL Server de パーティション 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ • パーティションのポイント: ⇒パーティションのパフォーマンスは? Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 33
  • 34. 設計フェーズ SQL Server de パーティション 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ • SQL Serverパーティション – パーティションによる負荷分散 非partitioned partitioned ・1,000,000件データ table table ・select count(*) ・非Partitioned table … 7.8GB 8分14秒 Physical Physical Physical ・・・ Table Partition Partition ・Partitioned table … 7.8GB 4分03秒 Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 34
  • 35. 設計フェーズ SQL Server de パーティション 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ • ちなみに・・・ – SQL Serverのデータ圧縮と組み合わせることで高速化可能 •パーティション分割のみ •パーティション分割+データ圧縮 ・1,000,000件データ ・1,000,000件データ ・select count(*) ・select count(*) ・非Partitioned table ・非Compression table … 7.8GB 8分14秒 … 7.8GB 8分14秒 ・Partitioned table ・Compression table … 7.8GB 4分03秒 … 20.8MB 1.3秒 シーケンスだけ 異なるほぼ同じデータを ページ単位で圧縮 Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 35
  • 36. 設計フェーズ オブジェクトの仕様の違いを理解する 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ オブジェクトの仕様を理解するポイント シーケンス パーティション マテリアライズドビュー PL/SQL Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 36
  • 37. 設計フェーズ SQL Server de マテビュー 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ Materialized View ・実体のあるビューのこと ・マテビューへの更新タイミングは任意に指定可能 ・DBリンクと組み合わせることで、テーブルレプリケーションも可能 ・SQL Serverではインデックス付きビューが最も近い機能 Oracle:マテリアライズドビュー SQL Server:インデックス付きビュー ・マテビューへデータを反映する ・×マテビューへデータを反映する タイミングは任意に指定可能 タイミングは任意に指定可能 - 完全リフレッシュ × - 完全リフレッシュ - 高速リフレッシュ(On Demand) × - 高速リフレッシュ(On Demand) - 高速リフレッシュ(On Commit) × - 高速リフレッシュ(On Commit) ・クエリーリライト機能(クエリを自動 ・○クエリーリライト機能(クエリを自動 で書き換え) で書き換え) ・DBリンクと組み合わせてテーブル単位 ・× DBリンクと組み合わせてテーブル単位 のレプリケーション のレプリケーション Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 37
  • 38. 設計フェーズ SQL Server de マテビュー 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ • インデックス付きビュー – 通常のビューを作成し、そのビューにインデックスを作成 – 作成するインデックスはクラスタインデックスのみ • クラスタインデックス≒Oracleの索引構成表 – インデックス付きビュー作成例 – 基テーブル Sales.SalesOrderHeader ( AdventureWorks DBを使用) – ビューの作成 CREATE VIEW v_SalesOrderCount WITH SCHEMABINDING AS SELECT SOH.CustomerID, COUNT_BIG(*) order_cnt FROM Sales.SalesOrderHeader SOH GROUP BY SOH.CustomerID; – インデックス付きビューの作成 CREATE UNIQUE CLUSTERED INDEX v_SalesOrderCount_idx ON v_SalesOrderCount(CustomerID) Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 38
  • 39. 設計フェーズ SQL Server de マテビュー 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ • SQL Server de マテビューのポイント: ⇒制約の多さ+パフォーマンス Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 39
  • 40. 設計フェーズ SQL Server de マテビュー 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ • インデックス付きビューの懸念点 – インデックス付きビューの制約 • インデックス付きビュー内で他のビューは参照不可 • 外部結合または⾃⼰結合は不可 • ORDER BY句は不可 • UNION、EXCEPT、INTERSECT句は不可 • DISTINCTオプションは不可 • AVG、MAX、MIN、STDEV、STDEVP、VAR、または VARP 集計関数は不可 • ⇒ただし、SUM関数やCOUNT_BIG関数と一緒に使うことは可能 – パフォーマンス懸念点 • 基テーブル更新時のオーバーヘッド • トランザクションの同時実⾏性 Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 40
  • 41. 設計フェーズ オブジェクトの仕様の違いを理解する 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ オブジェクトの仕様を理解するポイント シーケンス パーティション マテリアライズドビュー PL/SQL Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 41
  • 42. 設計フェーズ 4.SQL Server de PL/SQL(拡張SQL) 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ PL/SQL(拡張SQL) ・SQLを拡張して手続き型言語として作成可能 ・業務ロジックをデータベースに実装可能 ・プロシージャやファンクション、トリガー等をストアドとして定義 ・SQL ServerではTransact-SQLが該当 Oracle:PL/SQL SQL Server:Transact-SQL ・パッケージ、プロシージャ、 ・△パッケージ、プロシージャ、 ファンクション、トリガー ファンクション、トリガー ・変数、定数、CURSORの定義 ・○変数、定数、 CURSORの定義 ・FOR LOOP、WHILE、IF⽂の使用 ・○FOR LOOP、WHILE、IF⽂の使用 ・動的SQLの使用 ・○動的SQLの使用 ・エラーハンドリング ・○エラーハンドリング ・ストアドとして定義 ・○ストアドとして定義 Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 42
  • 43. 設計フェーズ SQL Server Migration Assistantとは 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ • PL/SQLをより詳細に比較する為に・・・ – ツールを使用してPL/SQLを比較 • SQL Server Migration Assistant for Oracle(SSMA) • SQL Server Migration Assistant for Oracle(SSMA) – データベースのマイグレーションを分析、評価、支援するツール – スキーマのマイグレーション – PL/SQLをTransact-SQLにマイグレーション – 一部の関数やシーケンスは、SSMAがエミューレート – Microsoft社から無償で提供 – 最新は5.1。最新はDenaliにも対応(らしい) Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 43
  • 44. 設計フェーズ SSMAの画面 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ Oracle:PL/SQL SQL Server:Transact-SQL エラー一覧 (資料: http://blogs.msdn.com/b/ssma/archive/2010/11/30/video-creating-custom-ssma-report.aspx ) Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 44
  • 45. 設計フェーズ SSMAの結果 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ SSMAによるオブジェクト変換率 オブジェクト変換率(PL/SQL以外) PL/SQL変換率 Object type Total With errors Converted Object type Total With errors Converted index 2735 17 99% function 294 74 75% schema 21 18 14% package 1958 1571 20% sequence 177 0 100% packaged-function 9640 2899 70% synonym 16 15 6% packaged-procedure 2429 1104 55% table 7008 867 88% private-packaged-function 1239 466 62% view 1100 269 76% private-packaged-procedure 1693 452 73% Total 11057 1186 89% procedure 1145 586 49% trigger 2744 1705 38% Total 21142 8857 58% タイプ型変換率 Object type Total With errors Converted collection-type 6 6 0% object-type 6 6 0% packaged-type 2927 0 100% private-packaged-type 561 0 100% Total 3500 12 100% Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 45
  • 46. 設計フェーズ PL/SQL変換エラーTop.8 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ 関数一覧(使用数別) SQL文が不正 58168 関数が変換不可 13594 %type等型の変数の使用 6562 SQLCODE、SQLERRMの不正使用 4223 動的に作成されたクエリは手動変換が必要 2029 関数内ではグローバルカーソルを使用不可 1672 定義が不正な変数(%type等)の使用 979 ROWIDは使用不可 449 0 20000 40000 60000 使用数 Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 46
  • 47. 設計フェーズ PL/SQL変換エラーTop.8 詳細 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ Package/Procedure/Function/Trigger/View Messages Cause Workaround 件数 SQL文の不正 - SELECT句のカラム VIEWのコンパイルエラー VIEWのエラー原因を特定 - INTO句で指定した変数 変数の宣言エラー(%type等) 変数の定義し直し 58168 - SQLの構文が不正 SQL Serverに未対応のSQL文 SQL文の書き換え (Merge文) 関数が変換不可 ⇒別ページ参照 ⇒別ページ参照 13594 (SUBSTRB関数やDBMS_OUTPUTなど) %type等型の変数の使用 SQL Serverに%typeや%rowtypeが存在しない 変数の定義し直し 6562 EXCEPTION ブロック外でSQLCODE、SQLERRM SQLCODE、SQLERRMの不正使用 仕様の確認、構文の修正 4223 を使用 動的SQL⾃体は実⾏可 動的に作成されたクエリは手動での変換が必要 変換後のSQL文を確認 2029 組み替えられたSQLは確認が必要 関数内ではグローバルカーソルを使用不可 グローバルカーソル 1672 定義が不正な変数(%type等)の使用 %typeで定義された変数を計算式等で使用している変数の定義を確認 979 ROWIDは使用不可 ROWIDはSQL Serverに存在せず 主キーを指定するよう変更 449 Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 47
  • 48. 設計フェーズ 関数エラー Top.8 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ 関数一覧(使用数別) SUBSTRB 12067 LENGTHB 530 MAX 168 UTL_FILE 166 INSTRB 128 DBMS_SQL 100 DBMS_OUTPUT 91 TO_MULTI_BYTE 85 0 5000 10000 15000 使用数 Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 48
  • 49. 設計フェーズ 関数エラー Top.8 詳細 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ Function Cause 件数 SUBSTRB SUBSTRB関数に対応する関数がない 12067 LENGTHB LENGTHB関数に対応する関数がない 530 GROUP BY句が不正 MAX GROUP BYで関数を使用 168 不正なVIEWの使用 UTL_FILE ほとんどがUTL_FILE.FCLOSE_ALLが使用不可 166 INSTRB INSTRB関数に対応する関数がない 128 DBMS_SQL ほとんどがDBMS_SQL.COLUMN_VALUEが使用不可 100 DBMS_OUTPUT DBMS_OUTPUT.DISABLE/ENABLEが使用不可 91 TO_MULTI_BYTE INSTRB関数に対応する関数がない 85 Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 49
  • 50. 設計フェーズ SSMAでの変換エラー Top.8 ~PL/SQL以外~ 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ Table/Index/Synonym/Sequence Messages Workaround LEVEL 件数 PUBLIC SYNONYMの使用 スキーマ毎にSYNONYMを作成 Warning 1797 NUMBER型の桁数未指定 仕様確認後桁数を定義 Warning 182 シーケンスが変換できない 2-2参照 Warning 173 一時テーブルの使用 セッション単位で一時テーブルを作成 Warning 64 マテリアライズドビューの使用 2-2参照 Error 49 RANGE PARTITIONの使用 SSMAでは自動変換されない Error 41 LIST PARTITIONの 使用 2-2参照 Error 30 INDEXのカラム数が多すぎ INDEXの見直し Error 30 Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 50
  • 51. 2-3. パフォーマンス管理ツールを理解する Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 51
  • 52. 設計フェーズ パフォーマンス管理ツールを理解する 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ パフォーマンス管理ツール パフォーマンスデータコレクション Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 52
  • 53. 設計フェーズ パフォーマンス管理ツール 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ • パフォーマンスデータコレクション – SQL ServerやOSのパフォーマンス情報を収集 – 過去データも参照可能(SQL Server2008) – OracleのEnterprise ManagerやStatspackと同等 Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 53
  • 54. 設計フェーズ パフォーマンスデータコレクション 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ • クエリ統計 – 負荷の高いSQLTOP10の抽出が容易 •クエリ統計によるレポート画面 • 実⾏時間の⻑いSQL • CPU使用時間の⻑いSQL • 物理読み込みの多いSQL • 論理書き込みの多いSQL Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 54
  • 55. 設計フェーズ パフォーマンスデータコレクション 開発フェーズ 開発 フェーズ 運用フェーズ 運用 フェーズ • 抽出したSQLのチューニング ①.SQLの 統計データ表示 ②.サンプリ ングされた待 機情報表示 ③.SQLの 実⾏計画表示 •Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 55
  • 56. 3.まとめ 3.まとめ Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 56
  • 57. まとめ • データを格納するハコとしてはどのデータベー スも同じ ⇒僅かな機能差や実績が製品の差になっている • 違いを理解することで、適材適所にデータベー スを配置することができる 更に・・・ ・お客様に対して攻めの提案が可能 ・設計・開発時の手戻り削減 ・運用後の障害発生を回避 •Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 57
  • 58. ひとつのデータベース技術だけでは生き残れない Copyright © 2011 Insight Technology, Inc. All Rights Reserved. 58