データベース管理者

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

4
CPUがアイドル状態の場合にのみ、サーバーエージェントジョブをスケジュールどおりに実行する
SQL Serverエージェントで更新クエリを実行するようにジョブを設定しています。このジョブを毎晩真夜中から午前5時まで実行し、その時間枠内で5分ごとに繰り返すようにしたい。ただし、CPUがアイドル状態の場合、つまり、CPU使用率が20%を下回っている場合にのみ、ジョブを実際に実行する必要があります。スケジュールを設定できることはわかっていますが、CPUアイドル要件を個別に設定することもできます。ジョブを実行するために両方の「スケジュール」がtrueでなければならないように設定する方法はありますか? ありがとう


1
MySQLでInnoDBテーブルを最適化する方法
私はMySQLで断片化されたテーブルのみを最適化する方法を調査しており、テーブルの最適化に関するこの投稿をレビューしました。基本的には、任意のテーブルについてinformation_schemaデータベースに対してクエリを実行し、それらのテーブルのみdata_free > 0に対するSQLステートメントを作成しますOPTIMIZE。このクエリを実行したところ、最適化のために148のテーブルが特定されました。識別されたすべてのテーブルはInnoDBテーブルです。結果の最適化SQLスクリプトを実行した後、元のスクリプトを再実行して断片化されたテーブルを識別し、最初のパスでまったく同じテーブルを返しました。 InnoDBテーブルとOPTIMIZEコマンドに関して競合する投稿を見ました。OPTIMIZEInnoDBテーブルでは機能せず、実行する必要があると言う人もいますALTER TABLE table_name ENGINE=INNODB。InnoDBテーブルに対して実行するときOPTIMIZEに実際にALTER TABLEコマンドを呼び出すという人もいます。そのことを念頭に置いて、ALTER TABLEフラグメント化されていると識別されたInnoDBテーブルの1つに対してコマンドを実行し(data_free > 0)、data_freeその後は変更されないことがわかりました。それはまだ0より大きいです。また、MySQLを再起動し、同じ結果を見つけるためだけにチェックしました。 これで、MySQL 5.5.29を実行しているサーバーがいくつか組織にあり、それらすべてに対してクエリを実行して、InnoDBテーブルを特定しましたがDATA_FREE=0 or NULL、何も返されませんでした。それらはすべてゼロより大きいです。 また、ゼロより大きいOPTIMIZEいくつかのMyISAMテーブルに対してコマンドを実行し、DATA_FREE後でそれがゼロであることを確認しました。 誰かがこれについて私にいくつかの光を当てることができますか?InnoDBテーブルから断片化を削除する適切な方法は何ですか?断片化されたInnoDBテーブルを特定する適切な方法は何ですか? ありがとう

2
CAST(1 AS SIGNED INTEGER)がMySQLでBIGINTを返すのはなぜですか?
私がそうするなら、私はCAST(1 AS SIGNED INTEGER)いつもBIGINT返されることになります、例えば: $ mysql -u root -p --column-type-info Enter password: --- Copyright and help message snipped for brevity --- mysql> select cast(1 as signed integer); Field 1: `cast(1 as signed integer)` Catalog: `def` Database: `` Table: `` Org_table: `` Type: LONGLONG <== LONGLONG i.e. 64 bit integer Collation: …

2
postgresqlのデータベース整合性チェッカー
PostgreSQLにDBCC(データベース整合性チェッカー)コマンドはありますか?SQLサーバーのDBCCコマンドは見つかりましたが、Postgresは見つかりませんでしたか?postgresqlにはパフォーマンス調整の機能が組み込まれており、postgresで使用できるDBCCコマンドはないことを読みました。本当ですか?

3
複数の結合がある最新の日付に基づいて行を選択します
私はこのクエリを持っています(SQLFiddle): SELECT c.name, a.user_id, a.status_id, a.title, a.rtime, u.user_name, s.status_name FROM company c LEFT JOIN action a ON a.company_id=c.id LEFT JOIN user u ON u.id=a.user_id LEFT JOIN status s ON s.id=a.status_id WHERE u.user_name='Morgan' -- WHERE c.name='Fiddle' GROUP BY c.id HAVING a.rtime IS NULL OR a.rtime = ( SELECT max(rtime) FROM action …
8 mysql  group-by 

2
正しい方法でOracleインスタンスを削除する
AIX 6.0 OSで作成されたoracleインスタンス(oracle 10.2.0.4.0)を削除したい。ターミナルですべてのdbfファイルとctlファイルを削除できることはわかっていますが、これは最善の方法ではないと思います。私はそれを行うためのよりクリーンな方法である必要があると思います。 前もって感謝します。

1
SQL Serverは、UPDATE中に新しい値と古い値の両方をどのように返しますか?
高い同時実行中に、意味のない結果を返すクエリの問題がありました-結果は、発行されるクエリのロジックに違反しています。問題の再現にはしばらく時間がかかりました。私は再現可能な問題を数握りのT-SQLにまで掘り下げました。 注:問題が発生しているライブシステムの部分は、5つのテーブル、4つのトリガー、2つのストアドプロシージャ、および2つのビューで構成されています。実際のシステムを簡略化して、投稿された質問をはるかに扱いやすいものにしています。物事が整理され、列が削除され、ストアドプロシージャがインラインになり、ビューが共通のテーブル式に変わり、列の値が変更されました。これは長い説明ですが、これはエラーを再現するものの、理解するのが難しい場合があることを示しています。なぜ何かがそのように構造化されているのか不思議に思わないでください。私はここで、このおもちゃモデルでエラー状態が再現可能に発生する理由を理解しようとしています。 /* The idea in this system is that people are able to take days off. We create a table to hold these *"allocations"*, and declare sample data that only **1** production operator is allowed to take time off: */ IF OBJECT_ID('Allocations') IS NOT NULL DROP TABLE Allocations CREATE …

3
SQL Server Management Studioのタイトルにテーブル名を表示する
SQL Server Management Studioでタイトルにテーブル名を表示する方法を知っている人はいますか?現在、それらは役に立たないものの隣にあり、テーブルを見る必要があるたびに、テーブルを再度開く必要があります。 古き良き時代には、Enterprise Managerを使用していましたが、それははるかに便利でした。 ここにBrent Ozarsの記事を見つけました。Options ...の対応するエントリはそこには何の役にも立たないようです。おそらくサードパーティ製品ですか?

3
「接続が閉じてプールに戻されると、最後のSET TRANSACTION ISOLATION LEVELステートメントからの分離レベルが保持されます」?
MSDNオンライン記事「SQL Serverのスナップショット分離」には、次のように記載されています。 「分離レベルには接続全体のスコープがあり、SET TRANSACTION ISOLATION LEVELステートメントを使用して接続に設定されると、接続が閉じられるか、別の分離レベルが設定されるまで有効です。接続が閉じられ、プールに戻されるとき、最後のSET TRANSACTION ISOLATION LEVELステートメントからの分離レベルが保持されます。プールされた接続を再利用する後続の接続では、接続がプールされたときに有効だった分離レベルが使用されます。 自己矛盾する段落ではありませんか(「まで」と「保持」)。 次に、接続を閉じてプールに戻した後、「最後のSET TRANSACTION ISOLATION LEVELステートメントからの分離レベルが保持されている」場合、それをどのように理解する必要がありますか。 デフォルトの分離レベルは任意の値になります(プール内の異なる接続には異なる分離レベルがあり、その値は再オープンされる接続に依存します)? または、プール内のすべての接続のすべてのデフォルト値が最後の値に変更されますか?しかし、手に入る前にまた全く未知ですか?

2
OracleデータベースをMySQLサーバーに移行する方法 [閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 4年前休業。 現在、アプリケーションはOracle 11gデータベースを使用して実行されています。MySQLクラスターで動作するアプリケーションの新しいバージョンを開発しています。OracleデータベースからMySQLデータベースにデータを移行する必要があります。これはデータベースオブジェクトの直接コピーではありません。新しいバージョンのアプリケーションスキーマ(テーブルの構造と関係)が変更されました。また、監査テーブルもコピーする必要があります。古いOracleスキーマと新しいMySQLスキーマのテーブル、列をマップし、コピーを適用してデータをコピーする方法はありますか? この活動は2つのステップで行うことを考えています。1. OracleデータベースをMySQLデータベースに変換します。2.テーブルごとにテーブルをコピーするストアドプロシージャを記述します。 この種のデータベースをあるRDBMSベンダーから別のベンダーに移行する際のベストプラクティスはありますか これに利用できるオープンソースまたは商用ツールはありますか?

5
すべてのデータベースのすべてのテーブルのテーブルサイズを一覧表示する
MSSQLサーバー上のすべてのデータベースのすべてのテーブルのサイズを一覧表示する簡単な方法はありますか? 1つのデータベースの結果を取得するためにsys.tablesでクエリを使用しましたが、サーバーごとに100を超えるデータベースがあるため、同じ結果を取得する方法はすべてのデータベースに対して素晴らしいでしょう。 現在、master.sys.databasesからデータベースの一時リストを作成し、それをカーソルで反復処理して、クエリを作成し、結果を一時テーブルにで挿入する必要がありますEXEC sp_executeSQL @SQLString。

1
SQL Serverでスキーマ間を一括で移行する方法は?
現在、複数のデータベースがありますが、それらを組み合わせて、スキーマを使用してドメインコンテキストを分離したいと考えています。 MS SQL Server 2008 R2では、スキーマのすべてのコンテンツを一括して別のスキーマに再配置するにはどうすればよいですか? たとえば、dboスキーマに作成したすべてのテーブル、ビュー、プロシージャ、インデックスなどは、スキーマに存在するようになりfooます。 編集:私はアーロンベルトランの素晴らしいコメントに基づいて明確にしたかったです。これはマルチテナンシーの状況ではありません。私たちの状況では、内部ツールプラグインが、テーブルをツールのデータベースにマージしなかった開発者によって分離して開発されました。

2
tempdbの場所が壊れて回復できない
間違いを犯し、tempdbのデータベース変更コマンドを誤って入力しました。 これでインスタンスは起動しなくなります。tempdbが見つからなかったため、-mを使用してシングルユーザーモードで起動できません。私は使ってみました: net start msqsqlserver /f /t3608 しかし、sqlcmdまたはを使用してインスタンスに実際に接続することはできませんssms。

3
MySQLリンクサーバーをSQL Serverに追加するにはどうすればよいですか?
SQL Server上のリンクサーバーをMySQLサーバーに追加しようとしています。 SQL Serverは、異なるドメイン名を持つ別のマシンにインストールされていることに注意してください。 SQL Serverは10.0.1.1old_domain.comにあります。 MySQLサーバーは10.0.1.2new_domain.comにあります。 サーバーにODBCデータソースを追加し10.0.1.1、接続をテストしましたが、問題は報告されていません。 次に、Microsoft SQL Server Management Studioを開いてに移動しましたSQL SERVER > Server Object > Linked Servers。 リンクサーバーを追加するためのウィザードが表示され、次のように構成しました。 リンクサーバー:「MySQLNewServer」 「その他のデータソース」プロバイダー「Microsoft OLE DBプロバイダーfor ODBC」を選択しました製品名「MySQLへの接続」データソース「MySQL」は、最初のステップで追加したデータソースと同じ名前です。 [セキュリティ]タブで[このセキュリティコンテキストを使用して作成する]を選択し、SQL Serverユーザー名とSQL Serverパスワードを入力しました 「OK」を押します 注:私はこのリンクhttp://dbperf.wordpress.com/2010/07/22/link-mysql-to-ms-sql-server2008/の指示に従いました しかし、私はこのエラーを受け取ります: リンクサーバー「MySQLNewServer」のOLE DBプロバイダー「MSDASQL」がメッセージ「[MySQL] [ODBC 5.2(w)Driver]を返しました。10.0.1.1上のMySQLサーバーに接続できません(10055)Microsoft SQL Serverエラー:7303。 誰かが私が間違っていることを教えてもらえますか?これらの2つのサーバーを通信させるにはどうすればよいですか?

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