1 | # frozen_string_literal: true |
||
2 | |||
3 | NoSE::Plans::ExecutionPlans.new do |
||
0 ignored issues
–
show
introduced
by
![]() |
|||
4 | Schema 'rubis_baseline' |
||
5 | |||
6 | DefaultMix :browsing |
||
7 | |||
8 | Group 'BrowseCategories', browsing: 4.44, |
||
9 | bidding: 7.65, |
||
10 | write_medium: 7.65, |
||
11 | write_heavy: 7.65 do |
||
12 | Plan 'Authentication' do |
||
13 | Select users.password |
||
14 | Param users.id, :== |
||
15 | Lookup 'users', [users.id, :==] |
||
16 | end |
||
17 | |||
18 | Plan 'Categories' do |
||
19 | Select categories['*'] |
||
20 | Param categories.dummy, :==, 1 |
||
21 | Lookup 'all_categories', [categories.dummy, :==] |
||
22 | Lookup 'categories', [categories.id, :==] |
||
23 | end |
||
24 | end |
||
25 | |||
26 | Group 'ViewBidHistory', browsing: 2.38, |
||
27 | bidding: 1.54, |
||
28 | write_medium: 1.54, |
||
29 | write_heavy: 1.54 do |
||
30 | Plan 'ItemName' do |
||
31 | Select items.name |
||
32 | Param items.id, :== |
||
33 | Lookup 'items', [items.id, :==] |
||
34 | end |
||
35 | |||
36 | Plan 'Bids' do |
||
37 | Select bids['*'], users.id, users.nickname |
||
38 | Param items.id, :== |
||
39 | Lookup 'bids_by_item', [items.id, :==] |
||
40 | Lookup 'bids', [bids.id, :==] |
||
41 | Lookup 'users', [users.id, :==] |
||
42 | end |
||
43 | end |
||
44 | |||
45 | Group 'ViewItem', browsing: 22.95, |
||
46 | bidding: 14.17, |
||
47 | write_medium: 14.17, |
||
48 | write_heavy: 14.17 do |
||
49 | Plan 'ItemData' do |
||
50 | Select items['*'] |
||
51 | Param items.id, :== |
||
52 | Lookup 'items', [items.id, :==] |
||
53 | end |
||
54 | |||
55 | Plan 'Bids' do |
||
56 | Select bids['*'] |
||
57 | Param items.id, :== |
||
58 | Lookup 'bids_by_item', [items.id, :==] |
||
59 | Lookup 'bids', [bids.id, :==] |
||
60 | end |
||
61 | end |
||
62 | |||
63 | Group 'SearchItemsByCategory', browsing: 27.77, |
||
64 | bidding: 15.94, |
||
65 | write_medium: 15.94, |
||
66 | write_heavy: 15.94 do |
||
67 | Plan 'ItemList' do |
||
68 | Select items['*'] |
||
69 | Param categories.id, :== |
||
70 | Param items.end_date, :>= |
||
71 | Lookup 'items_by_category', |
||
72 | [categories.id, :==], |
||
73 | [items.end_date, :>=], limit: 25 |
||
74 | Lookup 'items', [items.id, :==] |
||
75 | end |
||
76 | end |
||
77 | |||
78 | Group 'SearchItemsByRegion', browsing: 8.26, |
||
79 | bidding: 6.34, |
||
80 | write_medium: 6.34, |
||
81 | write_heavy: 6.34 do |
||
82 | Plan 'ItemList' do |
||
83 | Select items['*'] |
||
84 | Param regions.id, :== |
||
85 | Param categories.id, :== |
||
86 | Param items.end_date, :>= |
||
87 | Lookup 'items_by_region', |
||
88 | [regions.id, :==], |
||
89 | [categories.id, :==], |
||
90 | [items.end_date, :>=], limit: 25 |
||
91 | Lookup 'items', [items.id, :==] |
||
92 | end |
||
93 | end |
||
94 | |||
95 | Group 'BrowseRegions', browsing: 3.21, |
||
96 | bidding: 5.39, |
||
97 | write_medium: 5.39, |
||
98 | write_heavy: 5.39 do |
||
99 | Plan 'Regions' do |
||
100 | Select regions['*'] |
||
101 | Param regions.dummy, :==, 1 |
||
102 | Lookup 'all_regions', [regions.dummy, :==] |
||
103 | Lookup 'regions', [regions.id, :==] |
||
104 | end |
||
105 | end |
||
106 | |||
107 | Group 'ViewUserInfo', browsing: 4.41, |
||
108 | bidding: 2.48, |
||
109 | write_medium: 2.48, |
||
110 | write_heavy: 2.48 do |
||
111 | Plan 'UserData' do |
||
112 | Select users['*'], regions.id, regions.name |
||
113 | Param users.id, :== |
||
114 | Lookup 'users', [users.id, :==] |
||
115 | Lookup 'regions', [regions.id, :==] |
||
116 | end |
||
117 | |||
118 | Plan 'CommentsReceived' do |
||
119 | Select comments['*'] |
||
120 | Param users.id, :== |
||
121 | Lookup 'comments_by_user', [users.id, :==] |
||
122 | Lookup 'comments', [comments.id, :==] |
||
123 | end |
||
124 | end |
||
125 | |||
126 | Group 'RegisterItem', bidding: 0.53, |
||
0 ignored issues
–
show
|
|||
127 | write_medium: 0.53 * 10, |
||
128 | write_heavy: 0.53 * 100 do |
||
129 | Plan 'InsertItem' do |
||
130 | Param items.id, :== |
||
131 | Param items.name, :== |
||
132 | Param items.description, :== |
||
133 | Param items.initial_price, :== |
||
134 | Param items.quantity, :== |
||
135 | Param items.reserve_price, :== |
||
136 | Param items.buy_now, :== |
||
137 | Param items.nb_of_bids, :== |
||
138 | Param items.max_bid, :== |
||
139 | Param items.start_date, :== |
||
140 | Param items.end_date, :== |
||
141 | Insert 'items' |
||
142 | end |
||
143 | |||
144 | Plan 'AddToSold' do |
||
145 | Param items.id, :== |
||
146 | Param items.end_date, :== |
||
147 | Param users.id, :== |
||
148 | Insert 'user_items_sold' |
||
149 | end |
||
150 | |||
151 | Plan 'AddToCategory' do |
||
152 | Param items.id, :== |
||
153 | Param items.end_date, :== |
||
154 | Param categories.id, :== |
||
155 | Insert 'items_by_category' |
||
156 | end |
||
157 | |||
158 | Plan 'AddToRegion' do |
||
159 | Support do |
||
160 | Plan 'GetRegion' do |
||
161 | Select regions.id |
||
162 | Param users.id, :== |
||
163 | Lookup 'users', [users.id, :==] |
||
164 | end |
||
165 | end |
||
166 | |||
167 | Param users.id, :== |
||
168 | Param items.id, :== |
||
169 | Param items.end_date, :== |
||
170 | Param regions.id, :== |
||
171 | Param categories.id, :== |
||
172 | Insert 'items_by_region' |
||
173 | end |
||
174 | end |
||
175 | |||
176 | Group 'RegisterUser', bidding: 1.07, |
||
0 ignored issues
–
show
|
|||
177 | write_medium: 1.07 * 10, |
||
178 | write_heavy: 1.07 * 100 do |
||
179 | Plan 'AddUser' do |
||
180 | Support do |
||
181 | Plan 'GetRegionName' do |
||
182 | Select regions.name |
||
183 | Param regions.id, :== |
||
184 | Lookup 'regions', [regions.id, :==] |
||
185 | end |
||
186 | end |
||
187 | |||
188 | Param users.id, :== |
||
189 | Param users.firstname, :== |
||
190 | Param users.lastname, :== |
||
191 | Param users.nickname, :== |
||
192 | Param users.password, :== |
||
193 | Param users.email, :== |
||
194 | Param users.rating, :==, 0 |
||
195 | Param users.balance, :==, 0 |
||
196 | Param users.creation_date, :== |
||
197 | Param regions.id, :== |
||
198 | Insert 'users' |
||
199 | end |
||
200 | |||
201 | Plan 'AddToRegion' do |
||
202 | Param users.id, :== |
||
203 | Param users.nickname, :== |
||
204 | Param regions.id, :== |
||
205 | Insert 'users_by_region' |
||
206 | end |
||
207 | end |
||
208 | |||
209 | Group 'BuyNow', bidding: 1.16, |
||
210 | write_medium: 1.16, |
||
211 | write_heavy: 1.16 do |
||
212 | Plan 'Authentication' do |
||
213 | Select users.password |
||
214 | Param users.id, :== |
||
215 | Lookup 'users', [users.id, :==] |
||
216 | end |
||
217 | |||
218 | Plan 'ItemData' do |
||
219 | Select items['*'] |
||
220 | Param items.id, :== |
||
221 | Lookup 'items', [items.id, :==] |
||
222 | end |
||
223 | end |
||
224 | |||
225 | Group 'StoreBuyNow', bidding: 1.10, |
||
226 | write_medium: 1.10 * 10, |
||
227 | write_heavy: 1.10 * 100 do |
||
228 | Plan 'ReduceQuantity' do |
||
229 | Support do |
||
230 | Plan 'OldQuantity' do |
||
231 | Select items.quantity |
||
232 | Param items.id, :== |
||
233 | Lookup 'items', [items.id, :==] |
||
234 | end |
||
235 | end |
||
236 | |||
237 | Param items.id, :== |
||
238 | Insert 'items', items.id, items.quantity |
||
239 | end |
||
240 | |||
241 | Plan 'AddBuyNow' do |
||
242 | Param buynow.id, :== |
||
243 | Param buynow.qty, :== |
||
244 | Param buynow.date, :== |
||
245 | Param items.id, :== |
||
246 | Insert 'buynow' |
||
247 | end |
||
248 | |||
249 | Plan 'AddToBought' do |
||
250 | Param users.id, :== |
||
251 | Param buynow.id, :== |
||
252 | Param buynow.date, :== |
||
253 | Insert 'buynow_by_user' |
||
254 | end |
||
255 | end |
||
256 | |||
257 | Group 'PutBid', bidding: 5.40, write_medium: 5.40, write_heavy: 5.40 do |
||
258 | Plan 'Authentication' do |
||
259 | Select users.password |
||
260 | Param users.id, :== |
||
261 | Lookup 'users', [users.id, :==] |
||
262 | end |
||
263 | |||
264 | Plan 'ItemData' do |
||
265 | Select items['*'] |
||
266 | Param items.id, :== |
||
267 | Lookup 'items', [items.id, :==] |
||
268 | end |
||
269 | |||
270 | Plan 'Bids' do |
||
271 | Select bids['*'] |
||
272 | Param items.id, :== |
||
273 | Lookup 'bids_by_item', [items.id, :==] |
||
274 | Lookup 'bids', [bids.id, :==] |
||
275 | end |
||
276 | end |
||
277 | |||
278 | Group 'StoreBid', bidding: 3.74, |
||
0 ignored issues
–
show
|
|||
279 | write_medium: 3.74 * 10, |
||
280 | write_heavy: 3.74 * 100 do |
||
281 | Plan 'CheckMaxBid' do |
||
282 | Select items.nb_of_bids, items.max_bid |
||
283 | Param items.id, :== |
||
284 | Lookup 'items', [items.id, :==] |
||
285 | end |
||
286 | |||
287 | Plan 'AddBid' do |
||
288 | Support do |
||
289 | Plan 'GetMaxBid' do |
||
290 | Select items.max_bid |
||
291 | Param items.id, :== |
||
292 | Lookup 'items', [items.id, :==] |
||
293 | end |
||
294 | end |
||
295 | |||
296 | Param items.id, :== |
||
297 | Param items.max_bid, :== |
||
298 | Insert 'items', items.id, items.max_bid |
||
299 | end |
||
300 | |||
301 | Plan 'AddToBids' do |
||
302 | Param bids.id, :== |
||
303 | Param bids.qty, :== |
||
304 | Param bids.bid, :== |
||
305 | Param bids.date, :== |
||
306 | Param users.id, :== |
||
307 | Insert 'bids' |
||
308 | end |
||
309 | |||
310 | Plan 'AddToItemBids' do |
||
311 | Param items.id, :== |
||
312 | Param bids.id, :== |
||
313 | Insert 'bids_by_item' |
||
314 | end |
||
315 | |||
316 | Plan 'AddToUserBids' do |
||
317 | Param users.id, :== |
||
318 | Param bids.id, :== |
||
319 | Param bids.date, :== |
||
320 | Insert 'bids_by_user' |
||
321 | end |
||
322 | end |
||
323 | |||
324 | Group 'PutComment', bidding: 0.46, |
||
325 | write_medium: 0.46, |
||
326 | write_heavy: 0.46 do |
||
327 | Plan 'Authentication' do |
||
328 | Select users.password |
||
329 | Param users.id, :== |
||
330 | Lookup 'users', [users.id, :==] |
||
331 | end |
||
332 | |||
333 | Plan 'ItemData' do |
||
334 | Select items['*'] |
||
335 | Param items.id, :== |
||
336 | Lookup 'items', [items.id, :==] |
||
337 | end |
||
338 | |||
339 | Plan 'UserData' do |
||
340 | Select users['*'] |
||
341 | Param users.id, :== |
||
342 | Lookup 'users', [users.id, :==] |
||
343 | end |
||
344 | end |
||
345 | |||
346 | Group 'StoreComment', bidding: 0.45, |
||
347 | write_medium: 0.45 * 10, |
||
348 | write_heavy: 0.45 * 100 do |
||
349 | Plan 'UpdateRating' do |
||
350 | Support do |
||
351 | Plan 'GetRating' do |
||
352 | Select users.rating, regions.id |
||
353 | Param users.id, :== |
||
354 | Lookup 'users', [users.id, :==] |
||
355 | end |
||
356 | end |
||
357 | |||
358 | Param users.id, :== |
||
359 | Param users.rating, :== |
||
360 | Insert 'users', users.id, regions.id, users.rating |
||
361 | end |
||
362 | |||
363 | Plan 'InsertComment' do |
||
364 | Param comments.id, :== |
||
365 | Param comments.rating, :== |
||
366 | Param comments.date, :== |
||
367 | Param comments.comment, :== |
||
368 | Insert 'comments' |
||
369 | end |
||
370 | |||
371 | Plan 'AddToUserComments' do |
||
372 | Param users.id, :== |
||
373 | Param comments.id, :== |
||
374 | Insert 'comments_by_user' |
||
375 | end |
||
376 | end |
||
377 | |||
378 | Group 'AboutMe', bidding: 1.71, |
||
0 ignored issues
–
show
|
|||
379 | write_medium: 1.71, |
||
380 | write_heavy: 1.71 do |
||
381 | Plan 'UserData' do |
||
382 | Select users['*'] |
||
383 | Param users.id, :== |
||
384 | Lookup 'users', [users.id, :==] |
||
385 | end |
||
386 | |||
387 | Plan 'CommentsReceived' do |
||
388 | Select comments['*'] |
||
389 | Param users.id, :== |
||
390 | Lookup 'comments_by_user', [users.id, :==] |
||
391 | Lookup 'comments', [comments.id, :==] |
||
392 | end |
||
393 | |||
394 | Plan 'BuyNow' do |
||
395 | Select items['*'] |
||
396 | Param users.id, :== |
||
397 | Param buynow.date, :>= |
||
398 | Lookup 'buynow_by_user', [users.id, :==], [buynow.date, :>=] |
||
399 | Lookup 'buynow', [buynow.id, :==] |
||
400 | Lookup 'items', [items.id, :==] |
||
401 | end |
||
402 | |||
403 | Plan 'ItemsSold' do |
||
404 | Select items['*'] |
||
405 | Param users.id, :== |
||
406 | Param items.end_date, :>= |
||
407 | Lookup 'user_items_sold', [users.id, :==], [items.end_date, :>=] |
||
408 | Lookup 'items', [items.id, :==] |
||
409 | end |
||
410 | |||
411 | Plan 'ItemsBid' do |
||
412 | Select items['*'], bids.id |
||
413 | Param users.id, :== |
||
414 | Param bids.date, :>= |
||
415 | Lookup 'bids_by_user', [users.id, :==], [bids.date, :>=] |
||
416 | Lookup 'bids', [bids.id, :==] |
||
417 | Lookup 'items', [items.id, :==] |
||
418 | end |
||
419 | end |
||
420 | end |
||
421 |