データベース管理者

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

1
ENUM()リストを変更することは可能ですか?
ENUM()リストの変更が不可能かどうか確信が持てなかったので、テストを行いました。MySQL v5.1.58では、タイプENUM( 'yes'、 'no')の 'bool'という1つのフィールドを含むテストInnoDBテーブルを作成しました。 それから私は実行しました... ALTER TABLE `test` CHANGE `bool` `bool` ENUM( 'yes', 'no', 'maybe' ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL ...そしてそれは働いた。 私は何か間違ったことをしましたか?dbエンジンに依存していますか?誰もがENUM()リストの変更は不可能だと言うのはなぜですか?例えば。こちらhttp://komlenic.com/244/8-reasons-why-mysqls-enum-data-type-is-evil/
19 mysql  innodb 

2
外部キーはデッドロックを引き起こし、READ COMMITTED SNAPSHOTを妨げることができますか?
これは次の質問です:https : //stackoverflow.com/questions/7684477/is-it-possible-to-set-transaction-isolation-level-snapshot-automatically 大規模なレポートを同時に実行すると、ASP.NETアプリケーションでデッドロック/タイムアウトが発生しますREAD_COMMITTED_SNAPSHOT ON。 そこで、2つの質問があります。 トランザクション分離レベルスナップショットが期待どおりに機能しているかどうかを確認するにはどうすればよいですか? 外部キー(レポートテーブルへのWebアプリケーションのテーブル内)がデッドロックの原因であると想定しています。私はこの興味深い記事を見つけました: 注 SQL Serverは、トランザクションが読み取りコミットスナップショット(行バージョン管理を使用して読み取りコミット)またはスナップショット分離レベルを使用している場合でも、外部キーの検証時に共有ロックを取得します。これらのトランザクション分離レベルが使用されている場合、トランザクションのデッドロックグラフを調べるときは、このことに注意してください。共有ロックが表示される場合は、外部キーによって参照されているオブジェクトでロックが取得されているかどうかを確認してください。 FKがデッドロック/タイムアウト状況に本当に責任があるかどうかを確認するにはどうすればよいですか?つまり、デッドロックを防ぐためにそれらの外部キーを削除できますか? 注:デッドロックを引き起こすテーブルからの読み取りのみです。 このトピックに関するご意見は大歓迎です。 編集 ここはDeadlock-Graphです。誰かがデッドロックの原因を理解するのを助けてくれるかもしれません。2つのトランザクションが同じテーブル(1つの更新と1つの挿入、挿入はStored-Procedureとして)を書きたいときに、Webアプリケーションによってのみ実行されるレポートなしで発生したようです。ページロックを取得する理由と、行ロックのみを有効にする方法 Insert-SPはすでにを使用していTRANSACTION ISOLATION LEVEL REPEATABLE READます。 2つのトリガー(1つの更新と1つの挿入)がデッドロックの原因であると強く疑っています。挿入トリガーは次のとおりです。 CREATE TRIGGER [dbo].[CreateRMAFiDates] ON [dbo].[RMA] AFTER INSERT AS BEGIN SET NOCOUNT ON; UPDATE RMA SET [fiCreationDate]=(SELECT idDate FROM tdefDate WHERE CONVERT(VARCHAR, INSERTED.Creation_Date, 112) = tdefDate.Text), [fiPopDate]=(SELECT idDate FROM …



4
Postgresがすでに使用されているPK値を生成するのはなぜですか?
私はDjangoを使用していますが、時々このエラーが発生します: IntegrityError:重複キー値が一意の制約 "myapp_mymodel_pkey"に違反しています 詳細:キー(id)=(1)は既に存在します。 実際、私のPostgresデータベースには、主キーが1のmyapp_mymodelオブジェクトがあります。 Postgresが再びその主キーを使用しようとするのはなぜですか?または、これはおそらくアプリケーション(またはDjangoのORM)がこれを引き起こしているのでしょうか? この問題は、ちょうど3回続けて発生しました。私が見つけたのは、それが発生した場合、特定のテーブルの行で1回以上発生し、その後は発生しないことです。これは、数日間完全に停止する前にすべてのテーブルで発生し、発生したテーブルごとに少なくとも1分程度発生し、断続的にのみ発生するようです(すぐにすべてのテーブルが発生するわけではありません)。 このエラーが非常に断続的である(2週間で3回程度しか発生しなかった-DBに他の負荷がなく、アプリケーションをテストしているだけである)ため、低レベルの問題に非常に警戒しています。

3
phpMyAdminでmysqlテーブルの自動インクリメントを1にリセットするにはどうすればよいですか?
MySQLのコマンドラインで、これを使用してテーブルの自動インクリメントフィールドを1にリセットできることを知っています。 ALTER TABLE tablename AUTO_INCREMENT = 1 phpMyAdmin内からこれを行う方法があるかどうか興味があります。これらの行に沿って自動インクリメントまたは他の何かをリセットするチェックボックスのようなものはありますか? コマンドラインアプローチに問題があるわけではありません。私が考え続けている好奇心のもっと多くのもの...事前に感謝します!



2
postgresで既存のテーブルをパーティション分割する方法は?
日付範囲ごとに100万行以上のテーブルをパーティション分割したいと思います。これは、多くのダウンタイムを必要とせずに、またはデータを失うリスクを負うことなく、通常どのように行われますか?ここに私が検討している戦略がありますが、提案があります: 既存のテーブルがマスターであり、子はそれを継承します。時間が経つにつれて、マスターから子にデータが移動しますが、データの一部がマスター表にあり、一部が子にある期間があります。 新しいマスターテーブルと子テーブルを作成します。子テーブルの既存のテーブルにデータのコピーを作成します(したがって、データは2つの場所に存在します)。子テーブルが最新のデータを取得したら、今後すべての挿入を変更して新しいマスターテーブルを指し、既存のテーブルを削除します。

1
MySQLはテーブル内の各レコードの別のテーブルから行をカウントします
SELECT student.StudentID, student.`Name`, COUNT(attendance.AttendanceID) AS Total FROM student LEFT JOIN attendance ON student.StudentID = attendance.StudentID 私は最後の行を数えようとしていますが、代わりにすべての結果を数え、1つの結果を返します 私は次のようなものを得ています K1052280の出席IDに2つのエントリがあるため、複数のレコードがあるため、それらをカウントして番号を返します。何かのようなもの
19 mysql  select  count 

2
デバッグボタンをSSMS v18に追加する方法は?
Debugボタンは、SSMSのこのバージョンに存在しています: ただし、バージョン18プレビュー4にはありません。 いくつかの方法でDebugSSMSにボタンを追加しようとしましたが、成功しませんでした。 DebugボタンをSSMS v18 に追加する方法はありますか?
19 sql-server  ssms 


4
SSMS Tools Pack Alternative [終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、データベース管理者のStack Exchangeのトピックになるようにします。 5年前に閉鎖されました。 SSMS Tools Pack 2012に匹敵するツールはありますか?ライセンス(マシンあたり30ドル、任意の数のマシンで100ドル... 3か月間)には多くの要望が残されており、他にどのようなオプションが利用可能かはわかりませんでした。 たとえば、私が本当に見逃していることの1つは、「実行するすべてのクエリを保存する」です。いじくり回して調査するとき、クエリを実行するときに、クエリのさまざまなバージョンのバックアップを実行しておくことは非常に貴重です。または、2か月前に作業していたクエリのバックアップがないことに気付いたとき。 明確化:SQL Server Management Studioには公式のアドオンサポートはありませんが、いくつかのツールがあります。SSMS Tools Packは私が非常に気に入っていたもの(2005年、2008年版)ですが、2012年のライセンス料は恐ろしいものです。(合理的なライセンス料を支払うことになりますが、それはここでの質問ではありません。) たとえば、SSMSにクールな追加機能があり、価値があると思われるSSMS Boostを見つけました。 SQL Server 2012で利用できる他のアドインは何ですか?SSMS Tools PackのようにF5キーを押したときにクエリを保存するもの、またはリストされている2つのツール以外の何かが必要ですか?

1
SQL Serverが過剰なメモリ許可を警告するのはいつですか?
「過剰付与」実行計画の警告を生成する条件は何ですか? クエリメモリ許可が「ExcessiveGrant」を検出しました。これは信頼性に影響を与える可能性があります。許可サイズ:初期5128 KB、最終5128 KB、使用済み16 KB。 SSMS 計画エクスプローラー Showplan XML <Warnings> <MemoryGrantWarning GrantWarningKind="Excessive Grant" RequestedMemory="5128" GrantedMemory="5128" MaxUsedMemory="16" /> </Warnings>

1
単一行のINSERT…SELECTは、個別のSELECTよりもはるかに遅い
1〜400の番号が付けられた400行の次のヒープテーブルがあるとします。 DROP TABLE IF EXISTS dbo.N; GO SELECT SV.number INTO dbo.N FROM master.dbo.spt_values AS SV WHERE SV.[type] = N'P' AND SV.number BETWEEN 1 AND 400; および次の設定: SET NOCOUNT ON; SET STATISTICS IO, TIME OFF; SET STATISTICS XML OFF; SET TRANSACTION ISOLATION LEVEL READ COMMITTED; 次のSELECT文は約6秒で完了します(demo、plan): DECLARE @n integer = 400; …

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