データベース管理者

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

7
テーブルの完全な構造をコピーする
いくつかの方法を使用すると、テーブルのコピーを作成すると、インデックス、PK、FKなどが失われます。たとえば、SQL Serverでは次のように言えます。 select * into dbo.table2 from dbo.table1; これは、テーブルの単純なコピーです。すべてのインデックス/制約がありません。(バックアップを使用せずに)テーブル構造をコピーするにはどうすればよいですか? 私は主にこれを手動で行うことを探していますが、それが不可能な場合は、任意の解決策を受け入れます。

2
Mongodump:認識されないフィールド「スナップショット」
mongo toolsからmongodumpを使用して、サーバーのバックアップをダウンロードしています。ただし、コマンドを実行すると、コマンドは「認識されないフィールド 'snapshot'」を返します。 完全なエラーは次のとおりです。 Failed: error reading collection: Failed to parse: { find: "data", skip: 0, snapshot: true, $readPreference: { mode: "secondaryPreferred" }, $db: "xxx" }. Unrecognized field 'snapshot'. Mongodump --versionの戻り値: mongodump version: built-without-version-string git version: built-without-git-spec Go version: go1.7.3 os: linux arch: amd64 compiler: gc OpenSSL version: OpenSSL 1.0.2g …


1
新しい仕事のDBA初日-バックアップとセキュリティを確認する-方法 他に何をチェックする必要がありますか?
一般に、新しい環境で開始するとき、バックアップの場所、最後のフルバックアップが行われた時刻、最後の復元が適用された時刻、およびセキュリティも確認します。 これを行うには、T-SQLを使用します。 バックアップを確認する ;with Radhe as ( SELECT @@Servername as [Server_Name], B.name as Database_Name, ISNULL(STR(ABS(DATEDIFF(day, GetDate(), MAX(Backup_finish_date)))), 'NEVER') as DaysSinceLastBackup, ISNULL(Convert(char(11), MAX(backup_finish_date), 113)+ ' ' + CONVERT(VARCHAR(8),MAX(backup_finish_date),108), 'NEVER') as LastBackupDate ,BackupSize_GB=CAST(COALESCE(MAX(A.BACKUP_SIZE),0)/1024.00/1024.00/1024.00 AS NUMERIC(18,2)) ,BackupSize_MB=CAST(COALESCE(MAX(A.BACKUP_SIZE),0)/1024.00/1024.00 AS NUMERIC(18,2)) ,media_set_id = MAX(A.media_set_id) ,[AVG Backup Duration]= AVG(CAST(DATEDIFF(s, A.backup_start_date, A.backup_finish_date) AS int)) ,[Longest Backup Duration]= …

2
スーパーユーザーはログインできません
次のコマンドでスーパーユーザーポータルを作成しました create role portal with superuser password 'portal' ポータルユーザーでpostgresにログインしようとすると、レールで次のエラーが発生します。 FATAL: role "portal" is not permitted to log in 私は何が起こっているのかを追うことができません。 もちろん、ログインコマンドを使用してユーザーを変更し、ポータルユーザーがログインできるようにします。スーパーユーザーがログインできない理由を理解したいと思います。
32 postgresql 

1
XMLインデックスを使用した非常に奇妙なパフォーマンス
私の質問はこれに基づいています:https : //stackoverflow.com/q/35575990/5089204 そこで答えを出すために、次のテストシナリオを行いました。 テストシナリオ 最初にテストテーブルを作成し、100.000行を入力します。乱数(0から1000)は、乱数ごとに最大100行になるはずです。この番号はvarchar colに入れられ、XMLの値として使用されます。 次に、OPのような呼び出しを行います。.exist()および.nodes()を使用して、2番目の利点はわずかですが、両方とも5〜6秒かかります。実際に、呼び出しを2回行います。2回目はスワップされた順序で、検索パラメーターをわずかに変更し、フルパスではなく「// item」を使用して、キャッシュされた結果またはプランによる誤検知を回避します。 次に、XMLインデックスを作成し、同じ呼び出しを行います 今-本当に驚いたことは何ですか!- .nodesとの完全なパスがはるかに遅い(9秒)前よりもなく.exist()して、半秒までであるフルパスもダウン約0.10秒です。(一方.nodes()、短いパスの方が優れていますが、それでもはるかに遅れています.exist()) 質問: 私自身のテストをまとめると、XMLインデックスはデータベースを極端に破壊する可能性があります。それらは物事を非常に高速化できますが(s。edit 2)、クエリも遅くなります。それらがどのように機能するかを理解したいのですが... XMLインデックスを作成する必要があるのはいつですか?.nodes()インデックスを使用すると、インデックスを使用しない場合よりも悪くなるのはなぜですか?否定的な影響をどのように回避できますか? CREATE TABLE #testTbl(ID INT IDENTITY PRIMARY KEY, SomeData VARCHAR(100),XmlColumn XML); GO DECLARE @RndNumber VARCHAR(100)=(SELECT CAST(CAST(RAND()*1000 AS INT) AS VARCHAR(100))); INSERT INTO #testTbl VALUES('Data_' + @RndNumber, '<error application="application" host="host" type="exception" message="message" > <serverVariables> <item name="name1"> …

6
MySQL単一テーブルの1,000万行以上をできるだけ速く更新する方法は?
ほとんどのテーブルでMySQL 5.6とInnoDBストレージエンジンを使用します。InnoDBバッファープールのサイズは15 GBで、Innodb DB +インデックスは約10 GBです。サーバーには32GBのRAMがあり、Cent OS 7 x64を実行しています。 約1,000万件以上のレコードを含む1つの大きなテーブルがあります。 24時間ごとにリモートサーバーから更新されたダンプファイルを取得します。ファイルはcsv形式です。私はそのフォーマットを制御できません。ファイルは最大750 MBです。MyISAMテーブルに行ごとにデータを挿入しようとしましたが、35分かかりました。 ファイルから10-12のうち1行につき3つの値のみを取得し、データベースで更新する必要があります。 このようなことを達成する最良の方法は何ですか? これを毎日する必要があります。 現在、Flowは次のようになっています。 mysqli_begin_transaction ファイルを1行ずつ読み込む 各レコードを行ごとに更新します。 mysqli_commit 上記の操作を完了するには約30〜40分かかりますが、これを実行している間、他の更新が行われているため、 ロック待機タイムアウトを超過しました。トランザクションを再開してみてください アップデート1 を使用して新しいテーブルにデータを読み込みますLOAD DATA LOCAL INFILE。MyISAM 38.93 secでは、InnoDBでは7分5.21秒かかりました。それから私はやった: UPDATE table1 t1, table2 t2 SET t1.field1 = t2.field1, t1.field2 = t2.field2, t1.field3 = t2.field3 WHERE t1.field10 = t2.field10 Query OK, …

1
SQL Serverでデータベースをアタッチするにはどうすればよいですか?
SQL Serverでのデータベースの接続に関する一般的な質問: データベースをアタッチまたはデタッチするとはどういう意味ですか? データベースをデタッチするにはどうすればよいですか? データベースを接続するにはどうすればよいですか? ログを添付して再構築するとはどういう意味ですか? SQL Server Expressでどのように行うのですか? いつデタッチとアタッチを検討できますか? リスクや警告はありますか? SQL Serverのバージョンとエディションの間の接続はどうですか?(StandardからEnterprise?2000から2008?2012から2008?)
32 sql-server 

3
listen_addressesを実際にリストに設定できますか?
postgreSQLを実行しているIPアドレス192.168.0.192のVMがあります。 指定する場合 listen_addresses = '*' その後、192.168.0.191の別のVMおよびlocalhostから接続できます。 しかし、リストを使用して postgreSQLにこれら2つのアドレスを使用するように指示することはできません。listen_addressesをリストに変更した場合: listen_addresses = '192.168.0.191, localhost' 192.168.0.191から接続できなくなりました。 stackexchangeのほとんどすべての例でlisten_addressesが「*」に設定されていることがわかります。これは、リストフォームが機能しないためですか?
32 postgresql 

3
インスタンスごとにSQL Server ExpressのメモリとCPUの制限はありますか?
サーバーに8GBのRAMがあり、SQL Server Expressの4つのインスタンスを実行する場合、SQL Serverが使用する合計メモリ制限は1GBですか、4GBですか? このように複数のインスタンスを実行して、各データベースがリソースをより有効に使用できるようにすることをお勧めしますか(サーバーに十分なリソースがある場合)。

2
どちらがより効率的ですか:リンクサーバーから選択するか、リンクサーバーに挿入しますか?
あるサーバーから別のサーバーに(リンクサーバー経由で)データをエクスポートする必要があるとします。どのステートメントがより効率的ですか? ソースサーバーでの実行: INSERT INTO [DestinationLinkedServer].[DestinationDB].[dbo].[Table] SELECT a, b, c, ... FROM [dbo].Udf_GetExportData() または、ターゲットサーバーで実行します。 INSERT INTO [dbo].[Table] SELECT a, b, c, ... FROM OPENQUERY([OriginLinkedServer], 'SELECT a, b, c, ... FROM [OriginDB].[dbo].Udf_GetExportData()') どちらがより速く、合計でより少ないリソースを消費しますか(ソースサーバーとターゲットサーバーの両方)。両方のサーバーはSQL Server 2005です。

5
大きな検索エンジンはどのデータベーステクノロジーを使用していますか?[閉まっている]
GoogleやYahooが非常に大量のデータに対してキーワードを検索する方法を知っている人はいますか?このためにどのような種類のデータベースまたはテクノロジーを採用していますか? 数ミリ秒かかりますが、10億ページ以上のインデックスが作成されています。


3
VARCHARカラムにインデックスを付けるのは良いアイデア/アプローチですか?
PostgreSQL v8.2.3を使用しています。 関係するテーブルがあります:EMPLOYEEとEMAILLIST。 Table 1: EMPLOYEE (column1, column2, email1, email2, column5, column6) Table 2: EMAILLIST (email) 2つのテーブルは、EMPLOYEE.EMAIL1またはEMPLOYEE.EMAIL2に一致するエントリがない場合、それらの行が返されるように結合されます。 SELECT employee.email1, employee.email2, e1.email IS NOT NULL AS email1_matched, e2.email IS NOT NULL AS email2_matched FROM employee LEFT JOIN emaillist e1 ON e1.email = employee.email1 LEFT JOIN emaillist e2 ON e2.email = employee.email2 …

2
学習のためのデータベースチューニングの演習はどこにありますか?
開発者として、多くの場合、DBAはデータベースレベルでパフォーマンスの問題を解決する責任を負うため、クエリの診断、調整、リファクタリングなどの経験はあまりありません。 私は、テーブル、データ、クエリ、トリガー、SPなどが大量にあるデータベースを探しています。このデータベースには、意図的なパフォーマンスの問題があります。理想的には、これはMS SQLサーバー上にあります。 誰でもこの種のことを知っていますか?

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