忍者ブログ
DatabaseやLinuxなどの技術情報に関する備忘録を集めます。
2025 . 05
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • カレンダー
    04 2025/05 06
    S M T W T F S
    1 2 3
    4 5 6 7 8 9 10
    11 12 13 14 15 16 17
    18 19 20 21 22 23 24
    25 26 27 28 29 30 31
    フリーエリア
    最新コメント
    最新トラックバック
    プロフィール
    HN:
    Claude
    性別:
    非公開
    バーコード
    ブログ内検索
    アクセス解析
    ×

    [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

    ◆The Art of Projctmanagementのまとめと、思いついたこと

     

    スケジュール作成の目的

     1.完了予定の見通し

     2.成果物の位置づけをメンバーに展開
        協調を促進する
        スケジュールによる強制機能
        実現可能性の判定

     3.進捗管理のためのツール(WBS)
        管理可能な塊に分割する
        メンバー間の依存関係の調整


    リンカーンの名言

    If I had eight hours to chop down a tree, I'd spend six hours sharpening my ax.

    Abraham Lincoln

    もし私が木を切りたおすのに8時間与えられたら、斧を研ぐのに6時間かけるだろう。

    エイブラハム・リンカーン


    ※プロジェクトの計画、システムの設計など準備に時間をかけるのが重要ですね。


    スケジュールとは

     全体⇒ 設計  … 実施内容の検討
         製造  … 実作業
         テスト … 検証・分析・洗練
       に分割する(1/3の法則)

     ※分割統治法 … 各項目にさらに1/3の法則を適用する。

     ※プロジェクト運営にワークフローを適用する。
       ex)Aさんが△△機能を実装⇒Bさんがレビュー⇒PLに報告
         ⇒Cさんが試験実施⇒PLに報告⇒完了
        というように、フローを決める。全部一人でやるプロジェクトは品質に?が付くでしょう。

    スケジュールに潜んでいる問題点(リスクチェック)

     ・病欠、休暇予定(有給・夏季休暇など)は盛り込まれているか。
      
     ・スケジュールは容易に閲覧できるか。進捗は報告できるようになっているか。
      
     ・スケジュールは監視されるか。誰が監視を行うか。
      
     ・追加作業発生時、スケジュールにどのように組み込むかの手順は確立されているか。
      
     ・定期的なスケジュール見直し、再交渉は可能か。
      
     ・作業項目はすべて盛り込まれているか。実作業だけでなく事務作業(カルテ、納品準備、
      監査etc)、も組み込まれているか。
      
     ・レビュー時間は予定されているか。
      
     ・プロジェクトに必要な知識をメンバーに展開する時間、訓練の時間は盛り込まれているか。
      
     ・メンバーの経歴書(興味のある分野と経験してきたプロジェクト、資格など)
      個人情報系の情報は集めない。

     


    プロジェクト運営チェック

     ・個人占有マシン、サーバーなど物理環境は整っているか。
      
     ・ソース管理は行っているか。
      
     ・定期的にサーバーのバックアップを取っているか。
      
     ・要求の決定権、設計の決定権、技術の決定権はそれぞれ誰が持つかを把握している。
      予算決定権は誰が持つか。
      
     ・環境構築の手順がまとめられており、新たにメンバーが加わっても容易に環境を
      整えられる。

     ・各機能が何のために必要とされているかを把握している。または把握中にむけた取り組み
      を行っている。

    ・要求定義とは
      ⇒「【何を行う】必要があるのか」を記載した文書
        プロジェクトが完了したときに実現される事項

    ・設計書/仕様書とは
      ⇒「要求を満たすために【どうやって】行うのか」を記載した文書

     

     

    ビジョンの作成

    目標記述のスローガン(SMART)
    S:Specific⇒具体的
    M:Measurable⇒測定可能
    A:Action-oriented⇒行動試行
    R:Realistic⇒現実的
    T:Timely⇒タイムリー

     

    【参考文献】
    「アート・オブ・プロジェクトマネジメント ―マイクロソフトで培われた実践手法」スコット・バークン著

     

    PR

    WITH句にバインド変数を指定することで、
    バインド変数の適用箇所を減らすことができる。

    1SQLで大量のバインド変数(同じものがたくさん)になるとき
    バインド変数の数を減らすことで、バインド時の負荷をさげる
    ことができる。

    col manager_id format a10
    col insert_date format a30
    col inset_id format a10

    with
    bind_table as
    (select :decryptKey decryptKey, :target_date date01 from dual)
    SELECT
       sys.SMSDecrypt(MANAGER_ID, bind_table .decryptKey) manager_id,
       INSERT_DATE,
       INSERT_ID
    FROM
       MANAGER, bind_table 
    ;

    これを行えば、性能測定のときに
    便利!

    alter system flush buffer_cache;
    発行したSQLにバインド変数があった場合、どんな値が渡されたのか
    知りたいときがあります。
    そんなときはこのSQLを使ってバインド変数を調べましょう。

    --------------------------------------

     set heading on;
     set linesize 3000;
     set pagesize 50000;
     set termout off;
     set trimspool on;
     set colsep ',';

    col sql_id              form 99999      head "SQLID"
    col name                form a10        head "Name"
    col position            form 999        head "Position"
    col datataype_string    form a10        head "DatatypeString"
    col value_string        form a30        head "ValueString"
    col last_captured       form a10        head "LastCaptured"
     
     
    select distinct
        sql_id,
        name,
        position,
        datatype_string,
        value_string,
        TO_CHAR(last_captured, 'YYYY-MM-DD HH24:MI:SS')
    from
        v\$sql_bind_capture
     where
        SQL_ID = <SQL_ID>
     order by position;
     
    exit;

    以下のSQLたちは、大量データをインポートする際に
    高速化を狙ったDB構成情報を変更するためのものです。


      --表領域の拡張と増分変更
        set lines 200
        col tablespace_name format a10 trunc
        col file_name format a50 trunc
        select 
              file_id,
              tablespace_name,
              file_name, 
              bytes/1024/1024 || ' MB' as tablesize, 
              NEXT_EXTENT || 'KB' as NextExtent
        from 
              dba_data_files
        order by  file_id;

      -- エクステント数の確認
         SELECT
           SEGMENT_NAME, SEGMENT_TYPE, TABLESPACE_NAME, EXTENTS
         FROM DBA_SEGMENTS
         WHERE TABLESPACE_NAME = 'USERS'
         ORDER BY SEGMENT_NAME;

      -- データファイルのサイズ変更
        alter database datafile '/opt/oracle/oradata/test/users01.dbf' resize 11800M;

      -- データファイルの領域拡張サイズ変更
        alter database datafile '/opt/oracle/oradata/test/users01.dbf' autoextend on next 100M;
     
      -- REDOログの追加
      alter database add logfile group 4 '/opt/oracle/oradata/test/redo04.log' size 300M
      alter database add logfile group 5 '/opt/oracle/oradata/test/redo05.log' size 300M
      alter database add logfile group 6 '/opt/oracle/oradata/test/redo06.log' size 300M

      -- CURRENTログファイルの切り替え
      ALTER SYSTEM SWITCH LOGFILE;

      -- REDOログファイルの情報取得
      select * from v$log;

      -- ACTIVEなREDOログをNOT ACTIVEにするためにCHECKPOINTを行う。
      ALTER SYSTEM CHECKPOINT;


      -- REDOログファイルの削除
      alter database drop logfile group 1
      alter database drop logfile group 2
      alter database drop logfile group 3
     
    -- DB全体の統計情報取得(GATHER_STATS_JOBと同様の処理?)
    EXECUTE DBMS_STATS.GATHER_DATABASE_STATS();


    -- 統計情報取得JOBのスケジューリングON
    EXECUTE sys.dbms_scheduler.enable( '"SYS"."GATHER_STATS_JOB"' );

    -- 統計情報取得JOBのスケジューリングOFF
    EXECUTE sys.dbms_scheduler.disable( '"SYS"."GATHER_STATS_JOB"' );

     

    次のページ
    Copyright © Excellentデータベース技術者(?)のブログ All Rights Reserved
    Powered by ニンジャブログ  Designed by ピンキー・ローン・ピッグ
    忍者ブログ / [PR]