il_masacratoreさんのブログ

SQL08:SQL Serverの辞書の条件のデータを使用してテーブルを作成します。

0

時々の 葉が、実行があるか、または配布する傾向がある私たちはどこに行こうサービス統合のかかる私たちは、例えば、パッケージの ...必要がある等を確認第一実行のエラーが存在するのイベントを表に記録またはスケジュールされたスクリプトタスクを しようがログ読み込みは、デフォルトのトレースされていないテーブルのカスタムインチ我々は間違っている可能性、または常に含まれてパフォーマンスのタスクまたはSQL右スクリプト、実行を継続され、その後で実行する最初のパッケージおよび。純粋主義者を利用していますこれはただ"きちんとしていはなく、かなり"

 LogsEtlを表の作成
(実行int型のPRIMARY KEY、
パッケージはvarchar(50)
日付のdatetime);
ゴー 

実行では、最初の出力が正しいのですが、テーブルを作成失敗した後。これは、ビジョンコンサルティングを置き換えることができます sys.objectsには 、データベース内の各オブジェクトのレコードですが、それを前に、作成するテーブルの存在を確認してください。メタデータの可視性は、アクセス許可をすべて持っているユーザーに限られたセキュリティ保護可能なリソースが所有して、ユーザーまたは。されるビューの次の構造は:

 名(データ型)
)object_idを(int型
>)がprincipal_id(int ビット)is_schema_published((2))type_desc(データ型はnvarchar(60))create_date(datetime)にmodify_date(日時)をis_ms_shipped(ビットビット)is_published(char)schema_id(int)をparent_object_id(int)型( 

この場合のように)持っているものを名前をオブジェクトの一意の識別子を返す関数(前の判決をによって、私たちは変更してパラメータとしてクエリの名前をテーブルを探してビューのobject_id条件テーブルを作成:

 )N'U'の場合)と入力しない'[LogsEtl] EXISTSを(します。

SSRSの:#Oracleが引くことを報告するの進量のセルにエラーが発生

0

今まで知っている正確方法や場所の詳細レポートサービスからレポートの実行エラーの種類ごとに。私がいないところを、許可の不足に起因している対処処理キューブ不完全がため 理由もなく、セル内の#エラーが発生しました

エラーは私が)割合は(金額は、関与の合計を引くODBCデータ小レポートを実行しているのソースをに対してOracleデータベースを示す取得私はエラーについての詳細欠如について驚いた発生します。難易度については、より上のセル)と働いている組み合わせは、nの特定の(パラメータ、以前の実行があるが、全体のカラムではありません。も含まれています全部又は小計の合計を運ぶ...

ソースデータのレポートデザイナをチェックする私は次の形式を間違って、後に考えてそれをクライアント外部クエリをで後を確認した後、見てのRSサーバーのログを私はパラメータのテストをして取得し、何も考えず資産をそのエラーを、少なくともそれが表示されますで困ったうまくごまかしたがする:

結果は、クエリのセットからデータを読み取りに失敗しました。のOCI - 22053:オーバーフローエラーが発生しました。

何も、これを発見し、エラーがということです私はだから幸せado.net odbcの+オラクル+はよく番号を好きな38桁の...このためには、関数が関数trunc(数値、小数点以下)は、クエリのように我々が選択ここで、我々が順番に10進数の値を切り捨てることを使用して関係の回避策を行うことができます。

Ora10g:にORA - 00060デッドロック(II)が検出された

0

続いて 以前の記事を私は、oracleの特殊性に接続され、デザイン競合する必要がありますが原因で発生するロック言及の種類があります他にもあることを確認します。

この例では、最初のトレース左:

 ***アクション名:()21/04/2011 14:08:01.227
***モジュールの名前:(MiPrograma.exe)21/04/2011 14:08:01.227
***サービス名:(のSYS $ユーザー)2011年4月21日14:08:01.227
***クライアントID:()2011年4月21日14:08:01.227
***セッションID:(1636.58026)2011年4月21日14:08:01.227
デッドロックが)が検出されました(のORA - 00060を
[トランザクションのデッドロック]
次の例はエラーですいないOracleデッドロック。これは、SQLのアドホック-不適切な広告から、または発行するアプリケーションデッドロックのために、ユーザーエラーのデザインの。グラフ:デッドロック:デッドロックの決定支援を5月、以下の情報---------ブロッカー(秒--------- ---------ウェイター(秒)---リソース名のプロセスはセッションが------を保持します保持は、セッションを待機プロセス1636待機のTM - 99から00000000 0001f1b8 SXのSSxをを     92 SXのSSxをのTM - 1461から00000000 0001f1b8 SXのSSxを92 1461     1636年99 SXのSSxをセッション1636:DIDは0001から0063 - 0003159Eセッション1461:DIDは0001 - 005C - 000375B1セッション1461:DIDは0001 - 005C - 000375B1セッション1636:DIDは0063 - 0003159E行を待っていたの- 0001:セッション1461:行がないセッション1636:行がない 

ここで私たちを打つまず最初に以下のように我々はすでにレコードをロックしているということです。また、ロックの種類(Xまたは排他的に、今の特別SXまたは共有?前)異なっている。

MySqlを:コントロールは、とINFORMATION_SCHEMAテーブルをコンサルティングの断片化を軽減

0

断片化が/削除大きな動きの挿入があるテーブルで主に行われます。サンプルコントロールテーブルのトランザクションは、ユーザのログイン、中間テーブル等:これは、テーブル内のデータの量は非常に時間の変数です多くの成長断片化の最初の症状は、協議、特に多くのレコードを持つテーブルで顕著に遅くなる。それらについての事実をいくつかの興味深いのテーブルとの情報のステータスについてを参照してくださいすぐに聴聞することができます我々はできる相談INFORMATION_SCHEMA.TABLESの

インデックスがありますレコードdata_free)(スペース解放の間の関係の断片化少なくとも除去しての合計ボード(data_lenght)我々は意志を共有最もの表示順序:

 mysqlの順に選択しますtable_schemaのは、table_nameの場合、data_length、data_free(data_free / data_lengthの)* 100 frag_percent、エンジン                 
      INFORMATION_SCHEMA.TABLESから                 
      WHEREは> 0 data_free'のINFORMATION_SCHEMA'、'mysql'に)および(table_schemaのNOT INは                 
      でdescを注文frag_percent;

+--------------+-------------------------+-------- -----+-----------+--------------+--------+
| table_schemaの| table_nameを| data_lengthの| data_free | frag_percent |エンジン|
+--------------+-------------------------+-------- -----+-----------+--------------+--------+
| db1の|のalumnos_logueados | 143484340 | 136095052 | 94.8501 | MyISAMテーブル|
| db1の| incidencias_puntualidad | 131917692 | 112362116 | 85.1759 | MyISAMテーブル|
| db1の|のincidencias_asistencia | 7901568 | 6265364 | 79.2927 | MyISAMテーブル|
| db1の|のusuarios_logueados | 1813192 | 1004284 | 55.3876 | MyISAMテーブル|  

この相談からデータを使用して我々が断片化されたテーブルに使用可能な空き領域があります。

のMySql:監査の接続接続のトリガ

0

MySQLのトリガは、テーブルのみで、基本的なとがあります。がSqlServerのか、またはOracleのトリガとしてセッションに関するできるように狩り情報を取得するいくつかの接続が開きます。
悪い例を示しています。これは、ポットには行く場合がありますことを持つ環境私たちは、Webファーム内をapacheの1つは何とサーバー。を開始します)理由は何であれ、バルクのmysql(に開いてスレッドを当社とサーバーがクラッシュするユーザーのためそのために接続同時の数を制限れていないものはありません。どのような気持ち悪いの?そして、この上に詳細をなしに発生した私たちがでサボテン時のピークを参照してください、私たちは例であり、何が起こったのかではなく、オフィスの私たちが見つけることができます我々はしないの知っているんだと。

が多くを得るいくつかのために我々は、誰が開き、接続をおよびして監査する:

  1. )を作成するスキーマのスキーマ(またはされていません。

    スキーマは、監査を作成してください。
    使用する監査;

  2. テーブルの作成 ​​中のデータを格納します。
    CREATE TABLEのaud_conexiones(
    イドのBIGINT UNSIGNEDはNOT NULLをPRIMARY KEYはAUTO_INCREMENTカラム
    、thread_idをint無署名のNOT NULL DEFAULT 0を
    、ユーザはVARCHAR(64)NOT NULLをデフォルトに'unknown'
    、Login_tsのTIMESTAMPのNULLデフォルトのNULL);
  3. 我々は、データセッションプロシージャを作成しますを挿入する。
    区切り記号/ /
    は、CREATE PROCEDURE auditoria.login_trigger()
    のSQL SECURITY DEFINERの
    のBEGIN
    のINSERT INTO auditoria.aud_conexiones(ユーザー、thread_idをlogin_ts)
    )のVALUES CONNECTION_ID()はUSER()、(今();
    エンド;
    / /
    区切り文字;
  4. 監査許可を呼び出しするための手順を登録(init_connectグローバルユーザーおよび与える)変数。

    にSET GLOBAL")はinit_connectの"CALL auditoria.login_triggerを=(;

    これまでのところは良い。今ではテストしています。我々は、ユーザーで始まる:我々がままに、我々は接続を確立するために、データがテーブルに読み込まれるかどうかを確認しようとしました。

コンテンツ配信