データベース管理者

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

2
推移的な外部キーを追加する必要がありますか?
簡単な例:顧客のテーブルがあります。 create table Customers ( id integer, constraint CustomersPK primary key (id) ) データベース内の他のすべてのデータはにリンクする必要があるCustomerため、たとえばOrders次のようになります。 create table Orders ( id integer, customer integer, constraint OrdersPK primary key (customer, id), constraint OrdersFKCustomers foreign key (customer) references Customers (id) ) 次のようにリンクするテーブルがあるとしますOrders。 create table Items ( id integer, customer integer, order integer, constraint ItemsPK …

1
BIDSでファジールックアップを使用できない
私の同僚がBIDSで問題を抱えていました。彼は単純なあいまい検索を行っており、2行のみを検索しています(テスト用)。奇妙なことに、彼がコマンドラインを実行しようとすると、プロンプトが表示されて消えてから、パッケージがハングします。 それで私は彼にパッケージを送ってもらい、それを自分で実行することを決め、まったく同じことが起こっているのを見つけましたか? それは本質的に永遠にそのように座ります。エラーメッセージも何もありません。それが私に与える最後のメッセージはこれです。 [SSIS.Pipeline] Information: Execute phase is beginning. 私は問題が何であるかについての直感を持っているので、今これはスーパーユーザーか何かに置かれる方が良いかもしれません。私たちのコンピューターは苛立たしい程度にロックダウンされています。インストールの失敗やソフトウェアが正常に機能しない場合に遭遇するいくつかの問題があります。 何が起こっているのか、またはそれを修正する方法についてのアイデアがある場合は、私に知らせてください。 更新:このパッチをインストールしても役に立たなかった。32ビット、64ビット、または管理者としては機能しません。 出力も続き、最後はこれです。 SSIS package "Package1 (1) (1).dtsx" finished: Canceled.
11 ssis 

1
Sch-M WAITはSQL Server 2014でSch-Sをブロックしますが、SQL Server 2008 R2ではブロックしませんか?
最近、実稼働インスタンスをSQL 2008 R2から新しいSQL 2014サーバーに移行しました。Service Brokerの使用法で明らかになった興味深いシナリオを次に示します。でデータベースを考えてみましょうBroker Enabled = trueとMyServiceしてMyQueue。このキューでは、有害メッセージの処理が無効になっています。キューにメッセージがあるアクティブな会話が2つ以上あります。 1つのプロセス(SPID 100)で実行します。 BEGIN TRANSACTION; DECLARE @conversation_group_id UNIQUEIDENTIFIER; RECEIVE TOP (1) @conversation_group_id = conversation_handle FROM MyQueue; トランザクションは開いたままにしていることに注意してください。これは、外部リソースで長時間待機している.NETプログラムであると想像してください。経てsys.dm_tran_locks、私たちは、このSPIDがキューにIXロックが付与されていることがわかります。 | type | resource_id | mode | status | spid | | OBJECT | 277576027 | IX | GRANT | 100 | 別のプロセス(SPID 101)で5回実行します。 BEGIN TRANSACTION; …


1
SQL Server 2014 ExpressとAdvanced Servicesは実際に全文検索をサポートしていますか?
SQL Server 2014 Expressエディションと高度なサービスをインストールしました。全文検索機能を試してみたいと思っていました。ここで、全文検索が2014 Express Editionでサポートされていることを読みました。しかし、フルテキストインデックスをインストールして作成しようとすると、このバージョンのSQLサーバーではフルテキストインデックスがサポートされていないというエラーが表示されます。 全文索引は実際にサポートされていますか?間違ったバージョン(高度なサービスではない)をインストールする可能性はありますか?念のため、アンインストールと再インストールを2回行いましたが、どちらも同じ問題です。Advanced Servicesインストーラーを使用してインストールすることに同意します。 Windows 7、64ビットを使用しています。

1
「制限1000、25」と「制限25オフセット1000」
最近、MySQLにoffset機能があることがわかりました。オフセットの結果、またはオフセットと制限バリアントの違いについてのドキュメントを探していましたが、探しているものが見つからないようです。 テーブルに10.000行あり、行1.000から25件の結果が必要だとします。これまでのところ、私は同じ結果を得るために両方を行うことができました: SELECT id,name,description FROM tablename LIMIT 1000,25 SELECT id,name,description FROM tablename LIMIT 25 OFFSET 1000 私が知りたいのは、この2つの違いです。 これは実際に同じことをするのですか、それとも私の理解は間違っていますか? 大きなテーブルでは1つ遅い/速い 変更するとオフセットの結果は変わりますかWHERE column=1(たとえば、列に100を超える異なる値がある) オフセットの結果を変更したときORDER BY column ASC(ランダムな値があると仮定して) これが「愚かな」質問であり、誰かがその主題を啓発する文書を知っている場合は、それらを返信に追加してください。 私は、オフセットがデータベースで見つかった最初のX行をスキップして、ソートと場所を無視していると感じています。
11 mysql  limits 

1
データチェックサムはストリーミングレプリケーションとどのように相互作用しますか?
データチェックサムは、9.3で導入された新機能であり、 新しいGUCパラメータ "ignore_checksum_failure"があり、破損が検出された場合でもPostgreSQLにトランザクションの処理を継続させます。 レプリケーションマスターでチェックサムエラーが発生した場合、破損したデータがスレーブにレプリケートされるか、レプリケーションが停止します。の設定に依存しignore_checksum_failureますか? この READMEには有用な関連情報がいくつかありますが、質問には直接回答しません。

1
シーケンスが再利用されています
システム内のオブジェクトの追跡番号を生成するシーケンスがあります。かなり前から問題なく動作していました。 先週、値を再利用し始めていることに気づきました。 起こっているように見えるのは、夕方の異なる時点で、前日の値にロールバックすることです。その後、そのポイントから値を生成し続けます。 たとえば、次のようなものを取得できます。 10112 10113 10114 10115 10116 10117 10118 10113 10114 10115 10116 ... いつ、最初の使用から2回目の使用までの期間(わずか10分または数時間)、または何回ロールバックされるか(わずか1回から数百回)には、パターンはないようです。 トレースを実行することを検討しました(まだ実行する可能性があります)が、シーケンスオブジェクトが直接変更されているとは思わない。私がこれを信じる理由は、変更日が数日前であり、重複を試みて排除するために手動で値を上げた時を指しているからです。(それ以降、この問題は数回発生しています。) 誰もがシーケンスのロールバックを引き起こし、毎晩値を再利用する可能性があるという考えを持っていますか? 更新:コメントでいくつかの質問に答えるには: @@Version: Microsoft SQL Server 2012(SP1)-11.0.3000.0(X64)2012年10月19日13:38:57 スクリプトを作成: CREATE SEQUENCE [schemaName].[SequenceName] AS [bigint] START WITH 410014104 INCREMENT BY 1 MINVALUE 410000000 MAXVALUE 419999999 CYCLE CACHE GO 固有の制約はありません(ただし、制約を設定する予定です)。しかし、それは私がいつ値を再利用したかを知るのに役立つだけです。値がリセットされた原因ではありません。私は5分ごとに新しい値を取得し、それを節約するジョブを実行しました。時間と値のジャンプはパターンに従いません。 イベントログをチェックして、エラーがないか確認しました。起こっていると思うのはこれだけです:http : //support.microsoft.com/kb/2793634 本日修正を適用しています。これらは関連しているとは思いませんが、関連している可能性があります。

1
MySQL:my.cnfのbind-address 0.0.0.0が機能しませんか?
mysqlは初めてです。好きなIPを使用してMySQLサーバーに接続したい。私はmy.cnfファイルにbind-address = 0.0.0.0という行を追加するだけでよいことを読みました。それが私がしたことです。mysqlサーバーを再起動し、コマンドラインからテストしました。 mysql -uroot -p'*password*' -h 127.0.0.1 --> Works mysql -uroot -p'*password*' -h 192.168.2.4 (local ip address) ---> ERROR 1045 (28000): Access denied for user 'root'@'mguru.lnx.gr' (using password: YES) 以下のmysqldセクションの一部をmy.cnfファイルで確認できます [mysqld] user = mysql port=3306 socket = /opt/lampp/var/mysql/mysql.sock skip-external-locking key_buffer = 16M max_allowed_packet = 1M table_open_cache = 64 sort_buffer_size …
11 mysql  my.cnf 

1
削除ステートメントのデッドロック
SQL Serverジョブを実行すると、デッドロックが発生します。デッドロックは、単純なDELETEステートメントで発生します。デッドロックを引き起こすためにSELECT / UPDATEクエリを実行する必要があると思いましたか?しかし、それはDELETE / DELETEデッドロックのように見えます... 私が探しているのは、DELETE / DELETEデッドロックが発生する理由です。(私の知る限りでは)異なるパラメーターを渡すことです。 何か案は?ありがとう。 deadlock-list 2014-05-20 07:30:09.66 spid25s deadlock victim=process409048 2014-05-20 07:30:09.66 spid25s process-list 2014-05-20 07:30:09.66 spid25s process id=process409048 taskpriority=0 logused=0 waitresource=PAGE: 12:1:7127294 waittime=4352 ownerId=629860973 transactionname=DELETE lasttranstarted=2014-05-20T07:30:05.307 XDES=0x397219620 lockMode=U schedulerid=5 kpid=3792 status=suspended spid=150 sbid=0 ecid=3 priority=0 trancount=0 lastbatchstarted=2014-05-20T07:30:05.307 lastbatchcompleted=2014-05-20T07:30:05.307 clientapp=QSQL25 hostname=MORRIS hostpid=1528 isolationlevel=read committed …

1
特定の時間に毎日イベントをスケジュールする
イベントを毎日00:20に実行したい。時間のスケジュールに戸惑っています。最初のオプションと2番目のオプションのどちらを使用する必要がありますか? オプション1 CREATE EVENT my_event ON SCHEDULE EVERY 1 DAY STARTS '2014-04-30 00:20:00' ON COMPLETION PRESERVE ENABLE DO # My query オプション2 CREATE EVENT my_event ON SCHEDULE AT ('2014-04-30 00:20:00'+ INTERVAL 1 DAY) ON COMPLETION PRESERVE ENABLE DO # My query
11 mysql  event 

1
差分バックアップを復元すると、DEFUNCTログファイルが作成されますか?
これが私の問題です。完全な復元を介してデータベースを新しいサーバーに移動してから、差分バックアップ/復元をすばやく実行しようとしています。問題なく完全に復元できますが、差分バックアップを復元すると、次の警告が表示されます。 メッセージ3127、レベル16、状態1、行1復元されたデータベース 'DatabaseName'のファイル 'Database_Log2'は、データベースが単純復旧モデルを使用しており、ファイルが読み取り/書き込みアクセス用にマークされているため、無効な状態のままです。したがって、断片的な復元で回復できるのは読み取り専用ファイルのみです。 データベースは復元され、オンラインと見なされますが、このDEFUNCTファイルが原因でバックアップ操作が失敗し、次のエラーが発生します。 メッセージ3636、レベル16、状態2、行1データベースID 10ファイルID 6の「BackupMetadata」メタデータの処理中にエラーが発生しました。メッセージ3046、レベル16、状態2、行1一貫性のないメタデータが検出されました。可能なバックアップ操作は、WITH CONTINUE_AFTER_ERRORまたはNO_TRUNCATEオプションを使用したログ末尾のバックアップのみです。メッセージ3013、レベル16、状態1、行1 BACKUP DATABASEが異常終了しています。 フルと差分でRESTORE FILELISTONLYを実行すると、同じ出力が得られます。これは、ソースデータベースのsys.database_filesから見たものと一致します。サーバーはSQL2012 SP1のDeveloperエディションです。 フルバックアップを実行してすぐに差分を作成し、これらのファイルを同じサーバー上の別のデータベースに復元すると、まったく同じ問題が発生するため、差分の作成方法に原因があります。完全バックアップを復元して復元すると問題はありません。このファイルが以前このデータベースに存在していたかどうかはわかりませんが、このファイルが以前から存在し、かなり前に削除された可能性は十分にあります。復元されたデータベースでsys.database_filesを照会すると、DEFUNCTファイルにはdrop_lsnの値があり、これはこれを確認しているようです。現在、ソースデータベースには、ファイルグループ(PRIMARY)が1つ、データファイルが4つ、ログファイルが1つしかありません。 何か案は?

2
別のSQLアカウントとして実行されるSQLジョブステップ
別のSQLログインアカウントとして実行されるSQLジョブステップを設定する方法に興味があります。既存の資格情報を必要とする新しいプロキシアカウントを設定する必要があるようです。資格情報を作成するときの唯一の選択肢は、Windowsログイン資格情報を使用することです。 私が実行しようとしているジョブは以下のとおりです。他にもステートメントがありますが、SQLログインとして実行するようにジョブステップを設定すると失敗します。 insert into [dbo].[TableA] SELECT ss.[Ref_ID] ,mm.[studentID] ,mm.[studentPersonID] ,mm.[studentFirstname] FROM [dbo].[TableB] mm left outer join [dbo].[TableC] ss on ss.parentPersonID=mm.parentPersonID and mm.studentPersonID = ss.studentPersonID where ss.Ref_ID is not null; これがSQLジョブステップを介して実行されると、失敗します。 Executed as user: an_admin_account. Access to the remote server is denied because the current security context is not trusted. [SQLSTATE …

1
なぜ自動インクリメントは、挿入された行数を超えてジャンプするのですか?
auto_incrementストアドプロシージャを使用して一括挿入を実行した後、BidsテーブルのbidIDに記録されている値に見られるこの奇妙な動作に非常に混乱しています。 INSERT INTO Bids (itemID, buyerID, bidPrice) SELECT itemID, rand_id(sellerID, user_last_id), FLOOR((1 + RAND())*askPrice) FROM Items WHERE closing BETWEEN NOW() AND NOW() + INTERVAL 1 WEEK ORDER BY RAND() LIMIT total_rows; たとえばauto_increment、開始時にbidID値が101であり、100行挿入した場合、終了値は201ではなく213になります。ただし、挿入された行のbidIDは、最大201まで順次実行されます。 以下を確認して、 SHOW VARIABLES LIKE 'auto_inc%'; +--------------------------+-------+ | Variable_name | Value | +--------------------------+-------+ | auto_increment_increment | 1 | | …

1
バースト使用のためのIO要件の見積もり
SQLデータベースを1日中定期的に照会するアプリケーションがあります。比較的大量のデータに対する個々のリクエストが散在する、ゼロまたはわずかなアクティビティの期間があります。これらの要求が発生した場合、主な目的はデータを迅速に提供することであり、副次的な目的はそれを費用対効果の高い方法で行うことです。アプリケーションの性質上、データ/インデックスが前のクエリ(異なるユーザー、データの異なる部分で作業)からRAMにキャッシュされることはほとんどありません。 比較的安定した使用を経験するシステムの場合、ディスクキューの長さを観察し、その数を比較的小さく保つという経験則を聞きました。これは特にAWSで実行され、100 IOPSあたり1のディスクキューの長さが妥当であるという経験則を確認しました。 そのようなシステムのIO要件をどのように見積もることができますか?個別のバースト性のあるクエリを処理する場合、ディスクキューの長さは信頼できる指標ですか?考慮すべき他の指標はありますか?

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