@@ -8,7 +8,9 @@ package tpcc
8
8
import (
9
9
"bytes"
10
10
"context"
11
+ gosql "database/sql"
11
12
"flag"
13
+ "fmt"
12
14
"io"
13
15
"os"
14
16
"path/filepath"
@@ -20,6 +22,7 @@ import (
20
22
"time"
21
23
22
24
"github.com/cockroachdb/cockroach/pkg/base"
25
+ "github.com/cockroachdb/cockroach/pkg/ccl/workloadccl"
23
26
"github.com/cockroachdb/cockroach/pkg/rpc/nodedialer"
24
27
"github.com/cockroachdb/cockroach/pkg/settings/cluster"
25
28
"github.com/cockroachdb/cockroach/pkg/sql/stats"
@@ -139,6 +142,7 @@ func startCluster(
139
142
TestingNoLocalClientOptimization : true ,
140
143
},
141
144
},
145
+ SQLMemoryPoolSize : 1 << 30 , // 1 GiB
142
146
}
143
147
}
144
148
@@ -148,7 +152,7 @@ func startCluster(
148
152
ParallelStart : true ,
149
153
})
150
154
151
- // Generate a PG URL .
155
+ // Generate PG URLs .
152
156
for node := 0 ; node < nodes ; node ++ {
153
157
pgURL , cleanupURL := tc .ApplicationLayer (0 ).PGUrl (b , serverutils .DBName (dbName ))
154
158
pgURLs [node ] = pgURL .String ()
@@ -162,11 +166,20 @@ func startCluster(
162
166
163
167
// Load the TPC-C workload data.
164
168
gen := tpccGenerator (b , []string {"--db=" + dbName })
165
- var loader workloadsql.InsertsDataLoader
166
- if _ , err := workloadsql .Setup (ctx , tc .ServerConn (0 ), gen , loader ); err != nil {
169
+ var loader workloadccl.ImportDataLoader
170
+ sqlDB , err := gosql .Open (`cockroach` , strings .Join (pgURLs [:], " " ))
171
+ if err != nil {
172
+ b .Fatal (err )
173
+ }
174
+ if _ , err := workloadsql .Setup (ctx , sqlDB , gen , loader ); err != nil {
167
175
b .Fatal (err )
168
176
}
169
177
178
+ // Collect stats on each table.
179
+ for _ , table := range gen .Tables () {
180
+ r .Exec (b , fmt .Sprintf ("ANALYZE %q" , table .Name ))
181
+ }
182
+
170
183
return tc , pgURLs
171
184
}
172
185
0 commit comments