データベース管理者

データベースのスキルを向上させ、コミュニティの他の人から学びたいデータベースの専門家向けのQ&A

3
エラー:「SQL Serverデータツールの外部でssisパッケージを実行するには、Integration Services以上の[成功したメールを送信]をインストールする必要があります。」
このQusetionのタイトルは、このユーザーに固有の逐語的なエラーメッセージであることに注意してください。エラーメッセージは、エラーメッセージ文字列にユーザー変数を代入するdtexecアプリケーションのバグを示しています。この場合、標準メッセージStandard E ditionはに置き換えられsend successful emailます。 「標準」のエラーメッセージは次のようになります。 説明:Business Intelligence Development Studioの外部でSSISパッケージを実行するには、Integration ServicesのStandard Edition以上をインストールする必要があります。 バージョンSSIS2012。パッケージは元々2005バージョンでした。ファイルシステム上のパッケージ。 ホスト1のDBエンジン/エージェント、ホスト2のSSIS。 ホスト2からの実行は正常に実行されます。ホスト1から実行すると、質問の件名にエラーが表示されます。この投稿を見ましたが、エンジンとエージェントはホスト1にインストールされています。正確なエラーを検索しても、Googleは結果を返しません(件名は正確で、エラーメッセージの文言は奇妙です)。 ありがとうございました!

4
未使用のインデックスを見つける方法は?
私はデータウェアハウスに取り組んでいます。最大2億レコードのテーブルがあります。これらのテーブルの一部には約20以上のインデックスがあります(そもそもそれらが作成された理由を説明することはできません)。これにより、これらのインデックスを維持する作業が非常に面倒になり、パフォーマンスとランタイムの両方でDWHインポートジョブに直接影響を与えます。 各テーブルで最も使用されていないインデックスを見つけるにはどうすればよいですか?(それらを取り除くために)
11 sql-server  ssms 

5
同じワークグループに接続されている他のコンピューターからSQL Serverデータベースにアクセスする方法
SQL Serverデータベースを使用するC#アプリケーションを作成しました。ワークグループで他のコンピュータを自分と相互に接続しています。C#アプリケーションを他の人と共有しました。アプリケーションを開くと、エラーが発生します SQL Serverへの接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからなかったか、アクセスできませんでした しかし、アプリケーションは私のPCで正常に動作しています。私が使用している接続文字列は Data Source=ASHISHPC1\SQLEXPRESS;Initial Catalog=ACW;User ID=ash159;Password=ashish159 これは.configファイルに保存されます。 アプリケーションは私のPCで正常に動作しています。私は何をしなければなりませんか?サーバーでTCP / IPを有効にしましたが、同じエラーが引き続き発生します。接続文字列などに変更がありますか?

1
同じテーブルの2つの行を関連付ける方法
行を相互に関連付けることができるテーブルがあり、論理的には、その関係は2つの行の間で双方向(基本的に、方向がない)になります。(そして、もし疑問に思っているなら、はい、これは実際には1つのテーブルでなければなりません。これは、まったく同じ論理エンティティ/タイプの2つのものです。)これを表す方法はいくつか考えられます。 関係とその逆を保存する リレーションシップを1つの方法で保存し、データベースに逆方向の保存を制限し、FKの順序が逆の2つのインデックスを作成します(1つのインデックスはPKインデックスです)。 2つのインデックスを使用して関係を一方向に保存し、いずれにしても2番目のインデックスを挿入できるようにします(ややこしいですが、ちょっと、完全性) ある種のグループ化テーブルを作成し、元のテーブルにFKを適用します。(多くの質問が発生します。グループ化テーブルには数しかありません。なぜテーブルさえ持っているのですか?FKをNULL可能にするか、単一の行が関連付けられたグループがあるのですか?) これらの方法の主な長所と短所は何ですか?もちろん、私が考えていない方法はありますか? 以下は、使用するSQLFiddle です:http ://sqlfiddle.com/#!12/7ee1a/1/0 。(私が使用しているため、PostgreSQLであるように思われますが、この質問はPostgreSQLに固有のものではないと思います。)現在、例として、関係とその逆の両方を保存しています。

2
SQL Serverトランザクションログバックアップ:最後の既知のログバックアップの後にテールログが続くかどうかをテストする
SQL Serverを完全復旧モードで使用しています。完全バックアップと一連のログバックアップを前提として、最後の完全バックアップから現在の末尾ログまでのログチェーンが完了しているかどうかを確認できるようにしたいと考えています。(これらのバックアップを実際に復元することなく、ここでの目的はバックアップの一貫性をテストすることです。) 既存のバックアップでこれを行う方法はすでに知っています。RESTOREHEADERONLYを使用して、すべてのファイルのFirstLSNとLastLSNを取得します。これらのファイルは、互換性があるかどうかを判断するために、連続ファイルで比較できます。 ただし、最後のログバックアップの後にテールログが続くかどうかを確認する方法がわかりません。 テールログのFirstLSNがある場合、それを最後のログバックアップのLastLSNと比較できます。しかし、どうすれば末尾ログのFirstLSNを取得できますか? SQL Server 2005以降(理想的にはt-sqlを使用)で機能するソリューションが必要です。これまでのところ、私はグーグルを検索して役に立たなかった。ところで 私は最初にこれをstackoverflowに投稿しました。トピックから外れているため、ここに移行しました。 編集 小さな例(SQL Server 2005、9.0.5057)で提供された2つのソリューションを試しました。 BACKUP DATABASE TestDb TO DISK = 'C:\temp\backup test\Full.bak' -- fire some update queries BACKUP LOG TestDb TO DISK = 'C:\temp\backup test\Log1.bak' -- fire both queries from the provided answers: -- Martin Smith's answer yields: 838886656088920652852608 -- Shawn …

3
SQL Server 2008 R2の一般的なメモリ要件
私はDBAの仕事の経験はありませんが、SQLサーバーに追加のリソースを要求するためのケースを作ろうとしていて、何人かが実行する必要のある大まかな概算を提供してくれる賢い人たちを集めることを望んでいました。ITが本番SQLサーバーに割り当てたリソースの割り当てが少ないのではないかと思います。 ハードウェアとソフトウェア: データベース:SQL Server 2008 R2エンタープライズデータベース Windows:Windows 2008 r2 Enterprise 64ビット、VMwareで実行していることを確認してください。 プロセッサー:Intel(R)Xeon(R)CPU E7-4860 @ 2.27GHz 2.26 GHz(2プロセッサー) 搭載メモリ:4GB データベースファイル用ハードドライブ:300 GB バックアップ用ハードドライブ:150GB ログ用ハードドライブ:100GB 応用: 合計で約170GBのデータを追加する3つのメインデータベース、同じサーバー上のReporting Servicesデータベース(SSRS)があり、毎日生成される多分10の異なるレポート(それぞれ平均70万件のレコードを含む)を格納しています。私たちのユーザーベースは約20人の同時ユーザーです。そのうち5人は、大量のデータを処理する大量のレポートを生成する「リソース集中型」と考えることができます。ユーザーの大半は、asp.net WebサイトおよびレポートサーバーWebサイトを介してデータベースと対話します。さらに、開発者はサーバーに直接リモート処理することにより、BIDSでSSISを広範囲に使用します(最大2つのリモート接続)。最後に、かなり複雑なデータウェアハウジング操作があり、サーバーでも実行されるSSISパッケージを介して、おそらく1日あたり300万件のレコードを取り込みます。 現在の問題: 慢性的なサーバータイムアウトがあり、ウェブサイトへの応答時間がかなり悪いです。私たちが持っているメモリの量(4GB)はおそらく大きなボトルネックだと思います。以前の追加メモリの要求は、より多くのクエリ最適化を実行する必要があるという一般的な応答で拒否されました。私たちはsqlの専門家ではありませんが(私たちのセットアップでわかるように)db adminの専門家ではありませんが、ハードウェアがボトルネック。 tl; drを回避してくれてありがとう!

5
パージまたはフラッシュ後もMySQL binログファイルがまだ存在するのはなぜですか?
PURGE BINARY LOGSとFLUSH LOGSを使用しましたが、mysqlディレクトリにはまだ次のファイルが含まれています。 mysql-bin.000025 mysql-bin.000024 mysql-bin.000023 mysql-bin.000022 mysql-bin.000021 mysql-bin.000020 mysql-bin.000019 mysql-bin.index コマンドの使用が機能しない理由はありますか?これらのファイルは多くのスペースを使用しています。無事に取り除きたいです。

1
PostgreSQL 8.4でトリガー関数を実行するために必要な権限は何ですか?
PostgreSQL 8.4でトリガー関数を実行するために必要な権限は何ですか? ロールに設定された権限は、トリガー機能を実行する上で重要ではないようです。トリガー関数を実行するために必要な特権はEXECUTE特権であるが、トリガー関数を呼び出すトリガーを起動するアクションを実行する実際のロールではなく、テーブルの所有者にとってある日を見たことがあります。 その点を説明するドキュメント部分が見つかりません、何か助けはありますか?

2
MariaDB Javaクライアントは、MySQL JDBC(Connector / J)に完全に置き換わるものですか?
前提:MySQLデータベースへのJDBC接続を行うJavaアプリケーションを出荷します。(この記事の執筆時点では、5.1または5.5である可能性がありますが、質問と回答がバージョンに大きく依存しないことを願っています。) 観察:明らかに、MySQL JDBCドライバー(Connector / J)またはMariaDB JDBCドライバー(MariaDB Javaクライアント)を使用して、MySQLサーバーに接続できます。ISVの観点からの大きな利点の1つは、MariaDBドライバーがLGPLライセンスであり、MySQLドライバーがGPLライセンスであるということです。MariaDBドライバーのパフォーマンスは非常に良いようです。 質問:MariaDB JDBCドライバーは、MySQL JDBCドライバーの完全な代替品ですか? 私はこの2つの相対的なメリットについての議論を求めているのではありません。しかし、むしろ私は誰かがこれらのいずれかに沿って答えてくれることを望んでいます: MariaDB JDBCドライバーにはXとYに関する重要な問題があるため、これらのいずれかを使用すると問題が発生します。 一部の記事、仕様、コード、またはその他の証拠に基づいて、MariaDB JDBCドライバーは、MySQLドライバーで使用可能なすべてのメソッドを(少なくとも)完全に実装します。大丈夫だよ。
11 mysql  mariadb  jdbc 

1
Postgresでウィンドウ関数の集計を取得するにはどうすればよいですか?
次のように、整数配列の置換/組み合わせの2つの列を含むテーブルと、値を含む3番目の列があります。 CREATE TABLE foo ( perm integer[] NOT NULL, combo integer[] NOT NULL, value numeric NOT NULL DEFAULT 0 ); INSERT INTO foo VALUES ( '{3,1,2}', '{1,2,3}', '1.1400' ), ( '{3,1,2}', '{1,2,3}', '0' ), ( '{3,1,2}', '{1,2,3}', '1.2680' ), ( '{3,1,2}', '{1,2,3}', '0' ), ( '{3,1,2}', '{1,2,3}', '1.2680' ), ( …

3
SQL Server 2012 OLAPキューブによるWebサイトの支援は妥当と考えられていますか?
私は、大規模な小売チェーン向けのソリューションの設計を任されています。彼らは、120万人の各顧客がWebサイトにログオンして、約50のカテゴリーにわたる最近の購入(当月、前月、年初から現在まで)の分布を確認できるようにしたいと考えています。データは毎日1回更新されます。 SQL Server 2012ベースのOLAPキューブを作成し、プロアクティブキャッシュなどの機能を利用して、Webサイトにこのキューブを直接クエリさせることを考えています。ただし、私は中心的な開発者であるため、SQL Serverの分析サービスの部分についてはほとんど経験がないため、このソリューションのパフォーマンスについてはかなり心配しています。 WebサイトをOLAPキューブに直接接続することは、実現可能なソリューションのように聞こえますか?そのようなシステムは、SQL Serverのように複数のユーザーからの負荷に反応して、これを合理的な解決策にしますか、それともまったく異なる動作をしますか? ユーザーが自分のステータスを頻繁に確認することは期待していません。もちろん、Webサーバーなどでキャッシュを使用します。

4
列を合計して個別のバケットを作成するウィンドウクエリを作成するにはどうすればよいですか?
次のような10進値の列を含むテーブルがあります。 id value size -- ----- ---- 1 100 .02 2 99 .38 3 98 .13 4 97 .35 5 96 .15 6 95 .57 7 94 .25 8 93 .15 私が成し遂げる必要があることは、説明するのが少し難しいので、ご容赦ください。私がやろうとしているのは、size列の集計値を作成することvalueです。これは、に従って降順で、前の行の合計が1になるたびに1ずつ増加します。結果は次のようになります。 id value size bucket -- ----- ---- ------ 1 100 .02 1 2 99 .38 1 3 98 …

2
tempdbへの流出の可能性を減らすために、行推定をどのように改善できるか
tempdbイベントへの流出(遅いクエリの原因)が発生すると、特定の結合で行の見積もりがずれることがよくあります。マージイベントとハッシュ結合で流出イベントが発生し、ランタイムが3倍から10倍に増えることがよくあります。この質問は、流出事故の可能性を減らすことを前提として、行の見積もりを改善する方法に関係しています。 行の実際の数40k。 このクエリの場合、プランは不適切な行の見積もり(11.3行)を示しています。 select Value from Oav.ValueArray where ObjectId = (select convert(bigint, Value) NodeId from Oav.ValueArray where PropertyId = 3331 and ObjectId = 3540233 and Sequence = 2) and PropertyId = 2840 option (recompile); このクエリの場合、プランは適切な行推定(56k行)を示しています。 declare @a bigint = (select convert(bigint, Value) NodeId from Oav.ValueArray where PropertyId = 3331 and …

3
区切られた文字列の2番目または3番目の値を取得します。
次の表があります。 ========================================================== | Name_Level_Class_Section | Phone Num | ========================================================== | Jacky_1_B2_23 | 1122554455 | | Johnhy_1_B2_24 | 1122554455 | | Peter_2_A5_3 | 1122554455 | ========================================================== SQLステートメントを次のように簡略化しようと考えています。 select *, substring(Name_Level_Class_Section, CHARINDEX('_',Name_Level_Class_Section, (CHARINDEX('_', Name_Level_Class_Section) + 1)) + 1, CHARINDEX('_',Name_Level_Class_Section, (CHARINDEX('_',Name_Level_Class_Section, (CHARINDEX('_',Name_Level_Class_Section)+1))+1))- CHARINDEX('_',Name_Level_Class_Section, (CHARINDEX('_',Name_Level_Class_Section)+1))) as CLA from Bookings order by CLA asc, Name_Level_Class_Section …

1
postgresqlトランザクションログのフラッシュをリクエストするにはどうすればよいですか?
次の問題があります。「垂直」Linuxディストリビューション(Sophos UMT)には、PostgreSQL 9.2の設定を保存するためのものが付属しています。残念ながら、前回の更新以降、一部のインスタンスのトランザクションログ(WAL)がフラッシュされずに増大しているようです。これにより、pg_xlogフォルダーがベースフォルダーよりも数桁大きくなります。 私は現在、デリケートな状況にあります。WALファイルの過度の増大により、これらのマシンの1つ(VM)のディスクが月曜日の前に満杯になります。私は既にベンダーとのサポートケースを開いていますが、これまでのところ、あまり役に立ちません(より大きなディスクでVMを再構築することをお勧めします)。 ソフトウェアが別の方法でバックアップを実行しているため(このデータベースには独自のバックアップ手順があり、バックアップファイルを電子メールで送信するため)、このデータベースはバックアップされません。これが、WAFが非常に大きくなる理由だと思います。 私はPostgreSQLのエキスパートではないため、ばかげた質問や明らかな質問をしている可能性が高いですが、WALファイルのフラッシュを要求する手順は何ですか? 理想的には、問題のあるシステムでこれらのWALファイルをフラッシュして、ベンダーがより適切な修正を発行するのに十分な時間を確保するための手順を探しています。 編集:要求どおり、SELECT version();クエリの出力は次のとおりです。 PostgreSQL 9.2.4 on i686-pc-linux-gnu, compiled by gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973], 32-bit (1列) そしてSELECT name, current_setting(name), source FROM pg_settings WHERE source NOT IN ('default', 'override');クエリ hot_standby | on | configuration file listen_addresses | * | configuration file log_destination | …
11 postgresql 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.