1

データベースでいくつかの実験を行います。この場合、すべてのクエリは、TPCH ベンチマークのテーブルの 1 つからすべてを選択します ( select * from table;)。各クエリの前後に parse/proc/[pid]/ioします。[pid] はデータベースのプロセスです。これらの値の違いから、クエリの IO がわかります。これは MySQL の典型的な出力です (秒、MB):

      Query         time          RCHAR        WCHAR   READ_BYTES  WRITE_BYTES CANCELLED_WB
query1.sql|       0.005|       0.00234|     0.00245|     0.00391|     0.00000|     0.00000
query2.sql|       0.008|       0.00043|     0.00058|     0.00391|     0.00000|     0.00000
query3.sql|       0.041|       1.37217|     1.37296|     1.37891|     0.00000|     0.00000
query4.sql|       0.270|      23.41719|    23.64796|    23.44531|     0.00000|     0.00000
query5.sql|       0.346|      23.43413|    23.58974|    23.46484|     0.00000|     0.00000
query6.sql|       1.413|     113.77629|   115.76173|   113.89453|     0.00000|     0.00000
query7.sql|       1.792|     140.49537|   168.27847|   140.64062|     0.00000|     0.00000
query8.sql|       8.847|     614.04820|   759.00238|   614.65625|     0.00000|     0.00000
   Overall|      12.738|     916.54611|  1091.65626|   917.48828|     0.00000|     0.00000

WCHAR(write char) 値はどこから来るのだろうか。私のクエリは、「何かを書き込む」のではなく「すべてを読み取る」(「WRITE_BYTES」がnullであるため、実際にはディスク書き込みはなく、キャッシュ/バッファに書き込みますか?)。ここで何が恋しいですか?

4

1 に答える 1

1

TTY io (およびおそらくネットワーキング?) は WCHAR に含まれていると思いますが、WRITE_BYTES はディスクに書き込まれたページのみをカウントします。

于 2012-05-04T09:26:46.223 に答える