@@ -21,19 +21,19 @@ module Db =
21
21
return result
22
22
}
23
23
24
- let private createReadCommand ( connection : DbConnection ) =
24
+ let private createReadCommand ( connection : NpgsqlConnection ) =
25
25
let cmd = connection.CreateCommand(
26
26
CommandText = " SELECT id, randomnumber FROM world WHERE id = @Id"
27
27
)
28
- let id = cmd.CreateParameter (
28
+ let id = NpgsqlParameter < int > (
29
29
ParameterName = " @Id" ,
30
30
DbType = DbType.Int32,
31
- Value = Random.Shared.Next( 1 , 10001 )
31
+ TypedValue = Random.Shared.Next( 1 , 10001 )
32
32
)
33
33
cmd.Parameters.Add( id) |> ignore
34
34
cmd
35
35
36
- let private readSingleRow ( cmd : DbCommand ) =
36
+ let private readSingleRow ( cmd : NpgsqlCommand ) =
37
37
task {
38
38
use! rdr = cmd.ExecuteReaderAsync( CommandBehavior.SingleRow)
39
39
let! _ = rdr.ReadAsync()
@@ -83,12 +83,21 @@ module Db =
83
83
| q ->
84
84
q
85
85
86
- let private generateParameters ( results : World []) ( command : DbCommand ) =
86
+ // fill cache
87
+ let _ = [| 0 .. maxBatch |] |> Array.map batchUpdateString
88
+
89
+ let private paramNames =
90
+ seq { 0 .. maxBatch* 2 }
91
+ |> Seq.map ( fun i -> struct ( $" @Rn_{i}" , $" @Id_{i}" ))
92
+ |> Seq.toArray
93
+
94
+ let private generateParameters ( results : World []) ( command : NpgsqlCommand ) =
87
95
for i in 0 .. results.Length-1 do
88
96
let randomNumber = Random.Shared.Next( 1 , 10001 )
89
- let random = command.CreateParameter( ParameterName = $" @Rn_{i}" , DbType = DbType.Int32, Value = randomNumber)
97
+ let struct ( rnParamName , idParamName ) = paramNames[ i]
98
+ let random = NpgsqlParameter< int>( ParameterName = rnParamName, DbType = DbType.Int32, TypedValue = randomNumber)
90
99
command.Parameters.Add( random) |> ignore
91
- let id = command.CreateParameter ( ParameterName = $ " @Id_{i} " , DbType = DbType.Int32, Value = results[ i]. id)
100
+ let id = NpgsqlParameter < int > ( ParameterName = idParamName , DbType = DbType.Int32, TypedValue = results[ i]. id)
92
101
command.Parameters.Add( id) |> ignore
93
102
results[ i] <- { results[ i] with randomnumber = randomNumber }
94
103
0 commit comments