データベース管理者

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

6
データベースのSSDとHDD
MySQLサーバーを実行する新しいサーバーを購入しようとしています。この新しいサーバーは、メインマシンのスレーブになります。ただし、このサーバーは、「大量の読み取りと複雑なクエリ」のみのレポート専用になります。 現在、私はソリッドステートハードドライブへの投資を検討していますが、本当に価格に見合う価値があるのか​​疑問に思っていました。SSDとSATA 7200ハードドライブの違いは約1500ドルで、SSDのディスク容量は少なくなります。SSDに投資した場合、速度は顕著になりますか? 2(500GB SSD)を購入するよりも1500ドル安く4(500GB SATA 7200)を購入できます アップグレードする価値があるかどうかを判断するのを手伝ってもらえますか? もう一度言いたいのは、私は使用しquery_cacheていないため、大量のディスク読み取りがあることです。 このサーバーは32GBのRAMを搭載し、Ubuntu 12.04を実行します
42 mysql  ssd 

1
DATETIME2を返すGETDATE()の類似物はありますか
MSDNによると、Getdate()、GetUtcDate()、およびCURRENT_TIMESTAMPはすべてDATETIMEを返します。次のことを確認する短いテストを実行しました。 CREATE TABLE #t(T DATETIME2(7)); GO DECLARE @i INT ; SET @i=1; WHILE @i<10000 BEGIN ; INSERT #t VALUES(CURRENT_TIMESTAMP) ; SET @i=@i+1; END ; SELECT DISTINCT t FROM #t ORDER BY t ; --- 2013-01-28 13:23:19.4930000 2013-01-28 13:23:19.4970000 2013-01-28 13:23:19.5000000 2013-01-28 13:23:19.5030000 2013-01-28 13:23:19.5070000 2013-01-28 13:23:19.5100000 2013-01-28 13:23:19.5130000 (をちょきちょきと切る) DATETIME2(7)を返す同様の関数はありますか?

2
pgAdmin IIIでデータを表示する方法
彼らがこれを難しくするなんて信じられない。データベース内のデータを表示する方法がわかりません。 pgAdmin IIIを使用して、テーブルにあるデータを簡単に確認する方法はありますか?別の方法として、私が使用できる、吸わないプログラムはありますか?

5
PostgreSQLでの積極的な自動バキューム
私はPostgreSQLに積極的にデータベースを自動バキュームさせようとしています。現在、自動バキュームを次のように構成しています。 autovacuum_vacuum_cost_delay = 0#コストベースのバキュームをオフにする autovacuum_vacuum_cost_limit = 10000#最大値 autovacuum_vacuum_threshold = 50#デフォルト値 autovacuum_vacuum_scale_factor = 0.2#デフォルト値 自動バキュームは、データベースに負荷がかかっていないときにのみ作動することに気付きました。そのため、ライブタプルよりもはるかに多くのデッドタプルが存在する状況に陥ります。例については、添付のスクリーンショットを参照してください。テーブルの1つには23個のライブタプルがありますが、16845個のデッドタプルがバキュームを待っています。それは非常識です! テスト実行が終了し、データベースサーバーがアイドル状態になると、自動バキュームが開始されます。これは、データベースが既に稼働しているため、デッドタプルの数が20%のライブタプル+ 50を超えるたびに自動バキュームを開始したいので、これは望ましくありません設定済み。サーバーがアイドル状態のときの自動バキュームは、私にとって役に立たない。なぜなら、実稼働サーバーは、サーバーが負荷がかかっている場合でも実行するために自動バキュームが必要な理由で、持続時間にわたって1000更新/秒に達することが予想されるためである。 不足しているものはありますか?サーバーの負荷が高いときに自動バキュームを実行するにはどうすればよいですか? 更新 これはロックの問題でしょうか?問題の表は、挿入後トリガーを介して移入されるサマリー表です。これらのテーブルはSHARE ROW EXCLUSIVEモードでロックされ、同じ行への同時書き込みを防ぎます。

2
InnoDB:エラー:テーブル「mysql」。「innodb_table_stats」はmysql 5.6へのアップグレード後に見つかりません
5.5からmysql 5.6にアップグレードしたところ、起動時にログにこのようなメッセージが散らばっています ここで解決策を見つけましたが、公式ではないようです。 http://forums.mysql.com/read.php?22,578559,579891#msg-579891 2013-12-06 21:08:00 7f87b1d26700 InnoDB: Error: Table "mysql"."innodb_table_stats" not found. 2013-12-06 21:08:00 7f87b1d26700 InnoDB: Recalculation of persistent statistics requested for table "drupal"."sessions" but the required persistent statistics storage is not present or is corrupted. Using transient stats instead. 2013-12-06 21:08:07 7f903c09c700 InnoDB: Error: Table "mysql"."innodb_table_stats" not found. …

8
select *は、SQL Server 2012ではまだ大きな問題ではありませんか?
過去の時代に戻って、それはやるべきことselect * from tableやselect count(*) from tableパフォーマンスの打撃のために大きなノーと考えられていました。 SQL Serverの以降のバージョンでもこれは当てはまりますか(2012年を使用していますが、質問は2008〜2014年に適用されると思います)。 編集:ここで人々は私をわずかに軽視しているように見えるので、私はこれをベンチマーク/学問的観点から見ており、それが「正しい」ことであるかどうか(もちろんそうではありません)

3
外部cronのようなツールなしでPostgresqlで繰り返しタスクを実行する方法は?
ストアドプロシージャを定期的に呼び出したいです。Oracleでは、このためのジョブを作成します。Postgresqlは外部ツール(cronなど)とPgAgentを使用することで、これをうまく模倣できることがわかりました。 外部ツールを使用しない「内部」の代替手段をご存知ですか? pgAgentのコマンドラインに保存されているパスワードに関するセキュリティ上の懸念を回避したい。 パスワードを隠すための追加のシステム構成を避けたい(~/.pgpass)。 Postgresql 8.3 Linux RedHat 64ビット

5
ストアドプロシージャを起動し、完了するのを待たずにすぐに戻ることはできますか?
ユーザーが手動で実行して、1日を通して常に使用されるレポートの更新された数値を取得できるストアドプロシージャがあります。 この最初のストアドプロシージャから取得した数値に基づいているため、最初のストアドプロシージャの実行後に実行する必要がある2番目のストアドプロシージャがありますが、実行に時間がかかり、別のプロセスのためです。この2番目のストアドプロシージャが実行されるまで、ユーザーを待機させます。 1つのストアドプロシージャで2番目のストアドプロシージャを開始し、結果を待たずにすぐに戻る方法はありますか? SQL Server 2005を使用しています。


2
デフォルトでNULLまたはNOT NULLですか?
MySQLでは、フィールドが必須であることがわかっていない限り常にnullを許可Not Nullするか、フィールドにnullが含まれることがわかっていない限り常に使用する方が良いでしょうか?またはそれは重要ではありませんか? いくつかのDBMS Not Nullでは、可能な限り使用するように言っていますが、これは、Nullを許可するには、レコードごとにNullステータスを保存するために余分なビット(またはバイト?)が必要だからです
41 mysql  null 

3
Transact-SQLクエリの文字列の前のNプレフィックス
Transact-SQLクエリで文字列の前にNプレフィックスを使用する必要がある場合、教えてください。私はこのようなクエリを使用して結果を取得しないデータベースで作業を開始しました SELECT * FROM a_table WHERE a_field LIKE '%а_pattern%' パターンをに変更するまでN'%а_pattern%'。過去にこのプレフィックスを追加する必要がなかったので、興味があります。a_fieldはと定義されてnvarchar(255)いますが、その理由は他の何かだと思います。


3
新しいユーザーがテーブルを作成できるのはなぜですか?
新しく作成したユーザーがデータベースに接続した後にテーブルを作成できるのはなぜだろうかと思っています。私は1つのデータベースを持っていますproject2_core: postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges ---------------+--------------+-----------+-------------+-------------+------------------------------- postgres | postgres | SQL_ASCII | C | C | project2_core | atm_project2 | UTF8 | de_DE.UTF-8 | de_DE.UTF-8 | project2=CTc/project2 template0 | postgres | SQL_ASCII | C | C | …


14
SSH経由のTCP / IPでMySQL Workbenchを使用しようとしています-接続に失敗しました
MySQL WorkbenchでPCからSSH接続経由でTCP / IPを使用して接続できません。どうしたの? Ubuntuサーバーmysql.myhost.comにMySQL 5.1データベースを作成しました。ローカルにアクセスできます。MySQL Workbench(PC)は、sshを介したTCP経由の接続を提供します。コマンドラインmysqlが正常に機能するリモートサーバーのポート3306で実行されます。 次のセッションの詳細を使用しました。 接続方法:SSHを介したTCP / IP。 SSHホスト名:mysql.myhost.com:3306 SSHユーザー名:私のLinuxログイン SSH公開鍵ファイル:私のローカル公開鍵ファイル MySQLホスト名:127.0.0.1 MySQL サーバーポート:3306 ユーザー名:root 接続しようとすると、エラーメッセージが表示されます:「ユーザールートでmysql.myhost.comのSSHトンネルを介して127.0.0.1:3306のMySQLに接続できませんでした」 「 '127.0.0.1'(10061)でMySQLサーバーに接続できません」 別のテストとして-Puttyを使用してポート3306でSSHトンネルを設定し、MySQL Workbenchを使用して、上記のようにローカル3306への接続をリモートサーバーに転送するトンネルを介してOKに接続できます。しかし、Workbenchで「TCP / IP over SSH」を使用できません。 2番目の質問:Workbenchが「SSH公開キーファイルへのパス」を要求する場合、秘密キーファイルは本当に必要ないのですか?

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