擦亮自己的眼睛去看SQLServer之整体介绍
存储引擎包括存取方法、事务管理和缓冲区管理器。 存取方法(Access Methods) SQL Server需要定位数据库时,会调用存取方法代码。它提供了一组代码,用来创建和请求对数据页面和索引页面进行扫描,并且将准备好的OLE DB数据行集返回给关系引擎。存取方法并不
存储引擎包括存取方法、事务管理和缓冲区管理器。
存取方法(Access Methods)
SQL Server需要定位数据库时,会调用存取方法代码。它提供了一组代码,用来创建和请求对数据页面和索引页面进行扫描,并且将准备好的OLE DB数据行集返回给关系引擎。存取方法并不真正进行操作,它只负责向缓冲区管理器发出请求。存取方法不仅仅如此,它还会预测哪些数据页面索引页面即将处理,这样才能保证SQLServer高速处理。
事务管理器(Transaction Manager)
事务管理器包括两个组件:日志管理器和锁管理器。
锁管理器负责数据的并发保护和基于特定隔离级别的管理。
日志管理器负责将事务日志提前记录于日志文件中,从而起到保护数据的作用。访问方法代码请求的所有数据更改都必须记入日志中,这种方式称为预写日志。这是数据修改(插入、更新、删除、分配释放区和页、创建删除索引等)唯一总是写磁盘的的操作。它记录的是修改操作发生以后数据页面发生的改变,因此我们很难从中发现有意义的信息。除非用些第三方的工具。
缓冲区管理器(Buffer Manager)
缓冲区管理器用来管理缓冲区内存池中数据页面的分布。所有对数据的操作,都是先在缓冲区中操作的。然后由SQLOS中的检查点或者是惰性写入器同步到磁盘中。这样能保证SQLServer更快的响应请求。操作完成后就结果返回给访问方法。
四、缓冲池
缓冲池是SQLServer最消耗内存的部分。主要包含执行计划缓存和数据缓存。
五、SQLOS
可以理解为是SQLServer的资源管理器,主要负责与操作系统中的一些交互操作。如:内存分配、资源调度、I/O操作、进程线程管理以及同步、闩锁等等。这部分在此不展开,后期考虑专门写一章。
三、SQLServer执行模型
从图中可以看出,我这的执行模型也说的是整个SQLServer服务端在接收请求时,要发生的事情。但是和前面一样,SQLServer很多时候很多细化过于复杂没有办法能用一章图描述清楚。这个图简单的说明了SQLServer的执行模型。在分析这个图前,要明确一个问题。SQLServer是基于C/S的结构的产品。这样很明显就分为客户端与服务端。平时管理数据库的MSSMS以及我们需要访问数据库的系统就是属于SQLServer的客户端,SQLServer服务端主要是由一些服务方式构成。
因为是C/S,那么客户端的所有请求都必须传输到服务端,才能被执行。这样的话就涉及的双方通信的协议,这个协议在SQLServer2005后,就称为SNI。包的格式就是TDS。客户端的TDS通过SQLServer支持的协议传输到SQLServer服务端,服务端有一个组件叫连接监听服务,它一直在监听这请求端口。它负责监听新的连接,清除失败连接,将结果集、消息和状态返回给客户端。连接监听服务会把包发送给协议层,协议层对这个包进行解包,提取里面要执行的SQL语句,交给关系引擎,关系引擎经过处理后生成执行计划,并且执行计划。一旦关系引擎开发执行工作计划时,就会创建任务对象。任务对象必须关联一个空闲工作线程。工作线程关联到新任务后,状态设置为初始化。当完成初始化后,工作线程就转成为可运行。这时工作线程就准备就绪,只要有空闲的调度器就可以执行了。如果执行过程中遇到定时器等待、请求资源等待、I/O等待就会挂起移至相应的列表中。SQLServer采用了非抢占式调度。一个线程会完成这个任务的操作。不存在上下文切换,当然如果不是SQLServer的代码则采用抢占式调度,比如扩展存储过程。
今天分析就到此结束,文中如有描述不当的地方,欢迎指出。共同进步才是硬道理。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

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

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

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

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