SQLServer中的事务和锁

Jun 07, 2016 pm 04:21 PM
sqlserver 事務

SQL Server中的事务和锁 事务全部是关于原子性(atomicity)的。原子性的概念是指可以把一些事情当作一个单元来看待。从数据库的角度看,它是指应全部执行或全部不执行的一条或多条语句的最小组合。 在事务中可以标记的点: 1. Begin Tran:设置起始点。 2. Co

   SQL Server中的事务和锁

  事务全部是关于原子性(atomicity)的。原子性的概念是指可以把一些事情当作一个单元来看待。从数据库的角度看,它是指应全部执行或全部不执行的一条或多条语句的最小组合。

  在事务中可以标记的点:

  1. Begin Tran:设置起始点。

  2. Commit Tran:使事务成为数据库永久的、不可逆转的一部分。

  3. Rollback Tran:本质上说想要忘记它曾经发生过,即使回滚,回到事务发生之初。

  4. Save Tran:创建一个特定标识符,,只运行作部分回滚。

  SQL Server日志的工作方式

  SQL Server中可以锁定的资源:

  1. 数据库:锁定整个数据库。这通常发生在整个数据库模式改变的时候。

  2. 表:锁定整个表。这包含了于该表相关联的所有数据相关的对象,包括实际的数据行(它们的每一行)以及与该表相关联的所有索引中的键。

  3. 区段:锁定整个区段。因为一个区段是由8页组成,所以区段锁定是指锁定控制了区段、控制了该区段内的8个数据或索引页以及8也中的所有数据行。

  4. 页:锁定该页中的所有数据或索引键。

  5. 键:在索引中的特定键或一系列键上有锁。相同索引页中的其他键不受影响。

  6. 行或行标识符(RID):虽然从技术上讲:锁是放在行标识符(它是SQL Server的内部结构)上的,但是本质上是锁定了整个数据行。

  SQL Server锁的锁定模式:

  1. 共享锁:共享锁用于只需要读取数据的时候,也就是不会改变任何内容。

  2. 排他锁:不能与其他锁共存。

  3. 更新锁:更新锁是共享锁和排他锁的混合,是一种特殊的占位符。也就是先共享数据,可以读取,当需要更改的时候,转换成排他锁,就可以有效地防止死锁了。

  4. 意向锁(IntentLock):是真正的占位符,用来处理对象层次问题。

  5. 模式锁(SchemaLock):分为模式修改锁(对对象模式改变)和模式稳定性锁定(维持模式稳定)。

  6. 批量更新锁:允许并行加载数据。

  锁的兼容性:

SQLServer中的事务和锁    三联

  SQL Server中死锁的错误号:1205

  事务的ACID:

  1. 原子性(Atomicity):事务要么全部执行,要么全部不执行。

  2. 一致性(Consistency):需要遵守所有的约束以及其他的数据完整性规则,并且 完全的更新所有相关的对象(数据页、索引页)。

  3. 隔离性(Isolation):每一个事务都与其他的任何事务完全的隔离。一个事务不会受到另一个事务动作的干扰。

  4. 持久性(Durability):完成事务后,它的作用结果将永远存在于系统内。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

指定されたオブジェクトが sqlserver データベースにすでに存在するという問題を解決する方法 指定されたオブジェクトが sqlserver データベースにすでに存在するという問題を解決する方法 Apr 05, 2024 pm 09:42 PM

SQL Server データベースに既に存在する同じ名前のオブジェクトについては、次の手順を実行する必要があります。 オブジェクトの種類 (テーブル、ビュー、ストアド プロシージャ) を確認します。 IF NOT EXISTS を使用すると、オブジェクトが空の場合に作成をスキップできます。オブジェクトにデータがある場合は、別の名前を使用するか、構造を変更してください。既存のオブジェクトを削除するには、DROP を使用します (注意してください。バックアップを推奨します)。スキーマの変更をチェックして、削除または名前変更されたオブジェクトへの参照がないことを確認します。

mdfファイルをsqlserverにインポートする方法 mdfファイルをsqlserverにインポートする方法 Apr 08, 2024 am 11:41 AM

インポート手順は次のとおりです。 MDF ファイルを SQL Server のデータ ディレクトリ (通常は C:\Program Files\Microsoft SQL Server\MSSQL\DATA) にコピーします。 SQL Server Management Studio (SSMS) でデータベースを開き、[アタッチ] を選択します。 「追加」ボタンをクリックして、MDF ファイルを選択します。データベース名を確認し、「OK」ボタンをクリックします。

sqlserver サービスを開始できない場合の対処方法 sqlserver サービスを開始できない場合の対処方法 Apr 05, 2024 pm 10:00 PM

SQL Server サービスの開始に失敗した場合の解決手順は次のとおりです。 エラー ログを確認して、根本原因を特定します。サービス アカウントにサービスを開始する権限があることを確認してください。依存関係サービスが実行されているかどうかを確認します。ウイルス対策ソフトウェアを無効にします。 SQL Server のインストールを修復します。修復が機能しない場合は、SQL Server を再インストールします。

SQLサーバーのポート番号を確認する方法 SQLサーバーのポート番号を確認する方法 Apr 05, 2024 pm 09:57 PM

SQL Server のポート番号を表示するには: SSMS を開いてサーバーに接続します。オブジェクト エクスプローラーでサーバー名を見つけ、右クリックして [プロパティ] を選択します。 「接続」タブで、「TCP ポート」フィールドを表示します。

sqlserverで誤って削除したデータベースを回復する方法 sqlserverで誤って削除したデータベースを回復する方法 Apr 05, 2024 pm 10:39 PM

SQL Server データベースを誤って削除した場合は、次の手順を実行して回復できます: データベース アクティビティの停止、ログ ファイルのバックアップ、データベース ログの確認、回復オプション: バックアップからの復元、トランザクション ログからの復元、DBCC CHECKDB の使用、3 番目の使用パーティーツール。データ損失を防ぐために、データベースを定期的にバックアップし、トランザクション ログを有効にしてください。

SQLserver データベースはどこにありますか? SQLserver データベースはどこにありますか? Apr 05, 2024 pm 08:21 PM

SQL Server データベース ファイルは、通常、次のデフォルトの場所に保存されます。 Windows: C:\Program Files\Microsoft SQL Server\MSSQL\DATALinux: /var/opt/mssql/data データベース ファイルの場所は、データベース ファイル パスを変更することでカスタマイズできます。設定。

インストールが失敗した場合に sqlserver を削除するにはどうすればよいですか? インストールが失敗した場合に sqlserver を削除するにはどうすればよいですか? Apr 05, 2024 pm 11:27 PM

SQL Server のインストールが失敗した場合は、次の手順に従ってクリーンアップできます。 SQL Server をアンインストールする レジストリ キーを削除する ファイルとフォルダーを削除する コンピューターを再起動する

sqlserver 英語インストールを中国語に変更する方法 sqlserver 英語インストールを中国語に変更する方法 Apr 05, 2024 pm 10:21 PM

次の手順に従って、SQL Server の英語インストールを中国語に変更できます: 対応する言語パックをダウンロードする、SQL Server サービスを停止する、言語パックをインストールする、インスタンス言語を変更する、ユーザー インターフェイス言語を変更する、アプリケーションを再起動する。

See all articles