| | 285 | Во табелата test_instance се додаваат 5.000.000 тест записи со вредност за scheduled_for во ранг од 2022 до 2025 година. Истите квериња се извршени на партиционирана табела и на непартиционирана табела. |
| | 286 | |
| | 287 | 1. Прво квери: |
| | 288 | |
| | 289 | {{{#!div |
| | 290 | {{{#!sql |
| | 291 | explain (analyse, buffers) |
| | 292 | select * from test_instance where scheduled_for between '2024-01-01' and '2024-03-01'; |
| | 293 | }}} |
| | 294 | }}} |
| | 295 | |
| | 296 | 2. Второ квери |
| | 297 | |
| | 298 | {{{#!div |
| | 299 | {{{#!sql |
| | 300 | explain (analyse, buffers) |
| | 301 | select * from test_instance where scheduled_for between '2024-01-01' and '2024-03-01' and scheduled_until between '2024-01-01' and '2024-10-01'; |
| | 302 | }}} |
| | 303 | }}} |
| | 304 | |
| | 305 | 3. |
| | 306 | |
| | 307 | {{{#!div |
| | 308 | {{{#!sql |
| | 309 | explain (analyse, buffers) |
| | 310 | select * |
| | 311 | from test_instance |
| | 312 | where scheduled_for between '2024-01-01' and '2025-01-01'; |
| | 313 | }}} |
| | 314 | }}} |
| | 315 | |
| | 316 | === Без партиционирање |
| | 317 | |
| | 318 | |
| | 319 | |
| | 320 | === Со партиционирање |
| | 321 | |
| | 322 | {{{#!div |
| | 323 | {{{#!sql |
| | 324 | Seq Scan on test_instance_2023_2024 test_instance (cost=0.00..35022.53 rows=168312 width=112) (actual time=0.075..313.242 rows=167605 loops=1) |
| | 325 | Filter: ((scheduled_for >= '2024-01-01 00:00:00'::timestamp without time zone) AND (scheduled_for <= '2024-03-01 00:00:00'::timestamp without time zone)) |
| | 326 | Rows Removed by Filter: 855497 |
| | 327 | Buffers: shared hit=3186 read=16490 |
| | 328 | Planning Time: 0.103 ms |
| | 329 | Execution Time: 533.276 ms |
| | 330 | }}} |
| | 331 | }}} |
| | 332 | |
| | 333 | |
| | 334 | {{{#!div |
| | 335 | {{{#!sql |
| | 336 | Gather (cost=1000.00..31034.15 rows=18323 width=112) (actual time=9.510..73.809 rows=18628 loops=1) |
| | 337 | Workers Planned: 2 |
| | 338 | Workers Launched: 2 |
| | 339 | Buffers: shared hit=3218 read=16458 |
| | 340 | -> Parallel Seq Scan on test_instance_2023_2024 test_instance (cost=0.00..28201.85 rows=7635 width=112) (actual time=7.168..45.342 rows=6209 loops=3) |
| | 341 | Filter: ((scheduled_for >= '2024-01-01 00:00:00'::timestamp without time zone) AND (scheduled_for <= '2024-03-01 00:00:00'::timestamp without time zone) AND (scheduled_until >= '2024-01-01 00:00:00'::timestamp without time zone) AND (scheduled_until <= '2024-10-01 00:00:00'::timestamp without time zone)) |
| | 342 | Rows Removed by Filter: 334825 |
| | 343 | Buffers: shared hit=3218 read=16458 |
| | 344 | Planning Time: 0.111 ms |
| | 345 | Execution Time: 99.826 ms |
| | 346 | }}} |
| | 347 | }}} |
| | 348 | |
| | 349 | {{{#!div |
| | 350 | {{{#!sql |
| | 351 | Append (cost=0.00..63966.17 rows=1024027 width=112) (actual time=0.042..4192.731 rows=1023818 loops=1) |
| | 352 | Buffers: shared hit=5077 read=27983 |
| | 353 | -> Seq Scan on test_instance_2023_2024 test_instance_1 (cost=0.00..35022.53 rows=766644 width=112) (actual time=0.039..1100.165 rows=766431 loops=1) |
| | 354 | Filter: ((scheduled_for >= '2024-01-01 00:00:00'::timestamp without time zone) AND (scheduled_for <= '2025-01-01 00:00:00'::timestamp without time zone)) |
| | 355 | Rows Removed by Filter: 256671 |
| | 356 | Buffers: shared hit=3154 read=16522 |
| | 357 | -> Seq Scan on test_instance_2024_2025 test_instance_2 (cost=0.00..23823.50 rows=257383 width=112) (actual time=0.019..430.753 rows=257387 loops=1) |
| | 358 | Filter: ((scheduled_for >= '2024-01-01 00:00:00'::timestamp without time zone) AND (scheduled_for <= '2025-01-01 00:00:00'::timestamp without time zone)) |
| | 359 | Rows Removed by Filter: 438580 |
| | 360 | Buffers: shared hit=1923 read=11461 |
| | 361 | Planning Time: 0.144 ms |
| | 362 | Execution Time: 5525.093 ms |
| | 363 | }}} |
| | 364 | }}} |