Set Based operations with CockroachDB

Andrew Deally
13 min readMay 1, 2023

part 2

In a prior blog, I illustrated examples of rewriting row by row transactions to set based statements which improved parallel DML operations in CRDB. Next, I would like to provide another example of how to optimize deletes with a set based approach using inline tables with CTEs. Lets look at a common delete pattern where single row deletes are bundled into a single transaction.

Notice the transaction is 999 delete statements each on one row

This is considered a long running explicit transaction which average 1+ seconds per exection. By simply loading the rows into a simple inline table and joining the the table to delete the operation is efficient, short 30ms and is considered a SQL set based operation.

here is the SQL statement

WITH
cte0 (c_w_id, c_d_id, c_id)
AS (
VALUES
(3, 1, 1),
(3, 1, 2),
(3, 1, 3),
(3, 1, 4),
(3, 1, 5),
(3, 1, 6),
(3, 1, 7),
(3, 1, 8),
(3, 1, 9),
(3, 1, 10),
(3, 1, 11),
(3, 1, 12),
(3, 1, 13),
(3, 1, 14),
(3, 1, 15),
(3, 1, 16),
(3, 1, 17),
(3, 1, 18),
(3, 1, 19),
(3, 1, 20),
(3, 1, 21),
(3, 1, 22),
(3, 1, 23),
(3, 1, 24),
(3, 1, 25),
(3, 1, 26),
(3, 1, 27),
(3, 1, 28),
(3, 1, 29),
(3, 1, 30),
(3, 1, 31),
(3, 1, 32),
(3, 1, 33),
(3, 1, 34),
(3, 1, 35),
(3, 1, 36),
(3, 1, 37),
(3, 1, 38),
(3, 1, 39),
(3, 1, 40),
(3, 1, 41),
(3, 1, 42),
(3, 1, 43),
(3, 1, 44),
(3, 1, 45),
(3, 1, 46),
(3, 1, 47),
(3, 1, 48),
(3, 1, 49),
(3, 1, 50),
(3, 1, 51),
(3, 1, 52),
(3, 1, 53),
(3, 1, 54),
(3, 1, 55),
(3, 1, 56),
(3, 1, 57),
(3, 1, 58),
(3, 1, 59),
(3, 1, 60),
(3, 1, 61),
(3, 1, 62),
(3, 1, 63),
(3, 1, 64),
(3, 1, 65),
(3, 1, 66),
(3, 1, 67),
(3, 1, 68),
(3, 1, 69),
(3, 1, 70),
(3, 1, 71),
(3, 1, 72),
(3, 1, 73),
(3, 1, 74),
(3, 1, 75),
(3, 1, 76),
(3, 1, 77),
(3, 1, 78),
(3, 1, 79),
(3, 1, 80),
(3, 1, 81),
(3, 1, 82),
(3, 1, 83),
(3, 1, 84),
(3, 1, 85),
(3, 1, 86),
(3, 1, 87),
(3, 1, 88),
(3, 1, 89),
(3, 1, 90),
(3, 1, 91),
(3, 1, 92),
(3, 1, 93),
(3, 1, 94),
(3, 1, 95),
(3, 1, 96),
(3, 1, 97),
(3, 1, 98),
(3, 1, 99),
(3, 1, 100),
(3, 1, 101),
(3, 1, 102),
(3, 1, 103),
(3, 1, 104),
(3, 1, 105),
(3, 1, 106),
(3, 1, 107),
(3, 1, 108),
(3, 1, 109),
(3, 1, 110),
(3, 1, 111),
(3, 1, 112),
(3, 1, 113),
(3, 1, 114),
(3, 1, 115),
(3, 1, 116),
(3, 1, 117),
(3, 1, 118),
(3, 1, 119),
(3, 1, 120),
(3, 1, 121),
(3, 1, 122),
(3, 1, 123),
(3, 1, 124),
(3, 1, 125),
(3, 1, 126),
(3, 1, 127),
(3, 1, 128),
(3, 1, 129),
(3, 1, 130),
(3, 1, 131),
(3, 1, 132),
(3, 1, 133),
(3, 1, 134),
(3, 1, 135),
(3, 1, 136),
(3, 1, 137),
(3, 1, 138),
(3, 1, 139),
(3, 1, 140),
(3, 1, 141),
(3, 1, 142),
(3, 1, 143),
(3, 1, 144),
(3, 1, 145),
(3, 1, 146),
(3, 1, 147),
(3, 1, 148),
(3, 1, 149),
(3, 1, 150),
(3, 1, 151),
(3, 1, 152),
(3, 1, 153),
(3, 1, 154),
(3, 1, 155),
(3, 1, 156),
(3, 1, 157),
(3, 1, 158),
(3, 1, 159),
(3, 1, 160),
(3, 1, 161),
(3, 1, 162),
(3, 1, 163),
(3, 1, 164),
(3, 1, 165),
(3, 1, 166),
(3, 1, 167),
(3, 1, 168),
(3, 1, 169),
(3, 1, 170),
(3, 1, 171),
(3, 1, 172),
(3, 1, 173),
(3, 1, 174),
(3, 1, 175),
(3, 1, 176),
(3, 1, 177),
(3, 1, 178),
(3, 1, 179),
(3, 1, 180),
(3, 1, 181),
(3, 1, 182),
(3, 1, 183),
(3, 1, 184),
(3, 1, 185),
(3, 1, 186),
(3, 1, 187),
(3, 1, 188),
(3, 1, 189),
(3, 1, 190),
(3, 1, 191),
(3, 1, 192),
(3, 1, 193),
(3, 1, 194),
(3, 1, 195),
(3, 1, 196),
(3, 1, 197),
(3, 1, 198),
(3, 1, 199),
(3, 1, 200),
(3, 1, 201),
(3, 1, 202),
(3, 1, 203),
(3, 1, 204),
(3, 1, 205),
(3, 1, 206),
(3, 1, 207),
(3, 1, 208),
(3, 1, 209),
(3, 1, 210),
(3, 1, 211),
(3, 1, 212),
(3, 1, 213),
(3, 1, 214),
(3, 1, 215),
(3, 1, 216),
(3, 1, 217),
(3, 1, 218),
(3, 1, 219),
(3, 1, 220),
(3, 1, 221),
(3, 1, 222),
(3, 1, 223),
(3, 1, 224),
(3, 1, 225),
(3, 1, 226),
(3, 1, 227),
(3, 1, 228),
(3, 1, 229),
(3, 1, 230),
(3, 1, 231),
(3, 1, 232),
(3, 1, 233),
(3, 1, 234),
(3, 1, 235),
(3, 1, 236),
(3, 1, 237),
(3, 1, 238),
(3, 1, 239),
(3, 1, 240),
(3, 1, 241),
(3, 1, 242),
(3, 1, 243),
(3, 1, 244),
(3, 1, 245),
(3, 1, 246),
(3, 1, 247),
(3, 1, 248),
(3, 1, 249),
(3, 1, 250),
(3, 1, 251),
(3, 1, 252),
(3, 1, 253),
(3, 1, 254),
(3, 1, 255),
(3, 1, 256),
(3, 1, 257),
(3, 1, 258),
(3, 1, 259),
(3, 1, 260),
(3, 1, 261),
(3, 1, 262),
(3, 1, 263),
(3, 1, 264),
(3, 1, 265),
(3, 1, 266),
(3, 1, 267),
(3, 1, 268),
(3, 1, 269),
(3, 1, 270),
(3, 1, 271),
(3, 1, 272),
(3, 1, 273),
(3, 1, 274),
(3, 1, 275),
(3, 1, 276),
(3, 1, 277),
(3, 1, 278),
(3, 1, 279),
(3, 1, 280),
(3, 1, 281),
(3, 1, 282),
(3, 1, 283),
(3, 1, 284),
(3, 1, 285),
(3, 1, 286),
(3, 1, 287),
(3, 1, 288),
(3, 1, 289),
(3, 1, 290),
(3, 1, 291),
(3, 1, 292),
(3, 1, 293),
(3, 1, 294),
(3, 1, 295),
(3, 1, 296),
(3, 1, 297),
(3, 1, 298),
(3, 1, 299),
(3, 1, 300),
(3, 1, 301),
(3, 1, 302),
(3, 1, 303),
(3, 1, 304),
(3, 1, 305),
(3, 1, 306),
(3, 1, 307),
(3, 1, 308),
(3, 1, 309),
(3, 1, 310),
(3, 1, 311),
(3, 1, 312),
(3, 1, 313),
(3, 1, 314),
(3, 1, 315),
(3, 1, 316),
(3, 1, 317),
(3, 1, 318),
(3, 1, 319),
(3, 1, 320),
(3, 1, 321),
(3, 1, 322),
(3, 1, 323),
(3, 1, 324),
(3, 1, 325),
(3, 1, 326),
(3, 1, 327),
(3, 1, 328),
(3, 1, 329),
(3, 1, 330),
(3, 1, 331),
(3, 1, 332),
(3, 1, 333),
(3, 1, 334),
(3, 1, 335),
(3, 1, 336),
(3, 1, 337),
(3, 1, 338),
(3, 1, 339),
(3, 1, 340),
(3, 1, 341),
(3, 1, 342),
(3, 1, 343),
(3, 1, 344),
(3, 1, 345),
(3, 1, 346),
(3, 1, 347),
(3, 1, 348),
(3, 1, 349),
(3, 1, 350),
(3, 1, 351),
(3, 1, 352),
(3, 1, 353),
(3, 1, 354),
(3, 1, 355),
(3, 1, 356),
(3, 1, 357),
(3, 1, 358),
(3, 1, 359),
(3, 1, 360),
(3, 1, 361),
(3, 1, 362),
(3, 1, 363),
(3, 1, 364),
(3, 1, 365),
(3, 1, 366),
(3, 1, 367),
(3, 1, 368),
(3, 1, 369),
(3, 1, 370),
(3, 1, 371),
(3, 1, 372),
(3, 1, 373),
(3, 1, 374),
(3, 1, 375),
(3, 1, 376),
(3, 1, 377),
(3, 1, 378),
(3, 1, 379),
(3, 1, 380),
(3, 1, 381),
(3, 1, 382),
(3, 1, 383),
(3, 1, 384),
(3, 1, 385),
(3, 1, 386),
(3, 1, 387),
(3, 1, 388),
(3, 1, 389),
(3, 1, 390),
(3, 1, 391),
(3, 1, 392),
(3, 1, 393),
(3, 1, 394),
(3, 1, 395),
(3, 1, 396),
(3, 1, 397),
(3, 1, 398),
(3, 1, 399),
(3, 1, 400),
(3, 1, 401),
(3, 1, 402),
(3, 1, 403),
(3, 1, 404),
(3, 1, 405),
(3, 1, 406),
(3, 1, 407),
(3, 1, 408),
(3, 1, 409),
(3, 1, 410),
(3, 1, 411),
(3, 1, 412),
(3, 1, 413),
(3, 1, 414),
(3, 1, 415),
(3, 1, 416),
(3, 1, 417),
(3, 1, 418),
(3, 1, 419),
(3, 1, 420),
(3, 1, 421),
(3, 1, 422),
(3, 1, 423),
(3, 1, 424),
(3, 1, 425),
(3, 1, 426),
(3, 1, 427),
(3, 1, 428),
(3, 1, 429),
(3, 1, 430),
(3, 1, 431),
(3, 1, 432),
(3, 1, 433),
(3, 1, 434),
(3, 1, 435),
(3, 1, 436),
(3, 1, 437),
(3, 1, 438),
(3, 1, 439),
(3, 1, 440),
(3, 1, 441),
(3, 1, 442),
(3, 1, 443),
(3, 1, 444),
(3, 1, 445),
(3, 1, 446),
(3, 1, 447),
(3, 1, 448),
(3, 1, 449),
(3, 1, 450),
(3, 1, 451),
(3, 1, 452),
(3, 1, 453),
(3, 1, 454),
(3, 1, 455),
(3, 1, 456),
(3, 1, 457),
(3, 1, 458),
(3, 1, 459),
(3, 1, 460),
(3, 1, 461),
(3, 1, 462),
(3, 1, 463),
(3, 1, 464),
(3, 1, 465),
(3, 1, 466),
(3, 1, 467),
(3, 1, 468),
(3, 1, 469),
(3, 1, 470),
(3, 1, 471),
(3, 1, 472),
(3, 1, 473),
(3, 1, 474),
(3, 1, 475),
(3, 1, 476),
(3, 1, 477),
(3, 1, 478),
(3, 1, 479),
(3, 1, 480),
(3, 1, 481),
(3, 1, 482),
(3, 1, 483),
(3, 1, 484),
(3, 1, 485),
(3, 1, 486),
(3, 1, 487),
(3, 1, 488),
(3, 1, 489),
(3, 1, 490),
(3, 1, 491),
(3, 1, 492),
(3, 1, 493),
(3, 1, 494),
(3, 1, 495),
(3, 1, 496),
(3, 1, 497),
(3, 1, 498),
(3, 1, 499),
(3, 1, 500),
(3, 1, 501),
(3, 1, 502),
(3, 1, 503),
(3, 1, 504),
(3, 1, 505),
(3, 1, 506),
(3, 1, 507),
(3, 1, 508),
(3, 1, 509),
(3, 1, 510),
(3, 1, 511),
(3, 1, 512),
(3, 1, 513),
(3, 1, 514),
(3, 1, 515),
(3, 1, 516),
(3, 1, 517),
(3, 1, 518),
(3, 1, 519),
(3, 1, 520),
(3, 1, 521),
(3, 1, 522),
(3, 1, 523),
(3, 1, 524),
(3, 1, 525),
(3, 1, 526),
(3, 1, 527),
(3, 1, 528),
(3, 1, 529),
(3, 1, 530),
(3, 1, 531),
(3, 1, 532),
(3, 1, 533),
(3, 1, 534),
(3, 1, 535),
(3, 1, 536),
(3, 1, 537),
(3, 1, 538),
(3, 1, 539),
(3, 1, 540),
(3, 1, 541),
(3, 1, 542),
(3, 1, 543),
(3, 1, 544),
(3, 1, 545),
(3, 1, 546),
(3, 1, 547),
(3, 1, 548),
(3, 1, 549),
(3, 1, 550),
(3, 1, 551),
(3, 1, 552),
(3, 1, 553),
(3, 1, 554),
(3, 1, 555),
(3, 1, 556),
(3, 1, 557),
(3, 1, 558),
(3, 1, 559),
(3, 1, 560),
(3, 1, 561),
(3, 1, 562),
(3, 1, 563),
(3, 1, 564),
(3, 1, 565),
(3, 1, 566),
(3, 1, 567),
(3, 1, 568),
(3, 1, 569),
(3, 1, 570),
(3, 1, 571),
(3, 1, 572),
(3, 1, 573),
(3, 1, 574),
(3, 1, 575),
(3, 1, 576),
(3, 1, 577),
(3, 1, 578),
(3, 1, 579),
(3, 1, 580),
(3, 1, 581),
(3, 1, 582),
(3, 1, 583),
(3, 1, 584),
(3, 1, 585),
(3, 1, 586),
(3, 1, 587),
(3, 1, 588),
(3, 1, 589),
(3, 1, 590),
(3, 1, 591),
(3, 1, 592),
(3, 1, 593),
(3, 1, 594),
(3, 1, 595),
(3, 1, 596),
(3, 1, 597),
(3, 1, 598),
(3, 1, 599),
(3, 1, 600),
(3, 1, 601),
(3, 1, 602),
(3, 1, 603),
(3, 1, 604),
(3, 1, 605),
(3, 1, 606),
(3, 1, 607),
(3, 1, 608),
(3, 1, 609),
(3, 1, 610),
(3, 1, 611),
(3, 1, 612),
(3, 1, 613),
(3, 1, 614),
(3, 1, 615),
(3, 1, 616),
(3, 1, 617),
(3, 1, 618),
(3, 1, 619),
(3, 1, 620),
(3, 1, 621),
(3, 1, 622),
(3, 1, 623),
(3, 1, 624),
(3, 1, 625),
(3, 1, 626),
(3, 1, 627),
(3, 1, 628),
(3, 1, 629),
(3, 1, 630),
(3, 1, 631),
(3, 1, 632),
(3, 1, 633),
(3, 1, 634),
(3, 1, 635),
(3, 1, 636),
(3, 1, 637),
(3, 1, 638),
(3, 1, 639),
(3, 1, 640),
(3, 1, 641),
(3, 1, 642),
(3, 1, 643),
(3, 1, 644),
(3, 1, 645),
(3, 1, 646),
(3, 1, 647),
(3, 1, 648),
(3, 1, 649),
(3, 1, 650),
(3, 1, 651),
(3, 1, 652),
(3, 1, 653),
(3, 1, 654),
(3, 1, 655),
(3, 1, 656),
(3, 1, 657),
(3, 1, 658),
(3, 1, 659),
(3, 1, 660),
(3, 1, 661),
(3, 1, 662),
(3, 1, 663),
(3, 1, 664),
(3, 1, 665),
(3, 1, 666),
(3, 1, 667),
(3, 1, 668),
(3, 1, 669),
(3, 1, 670),
(3, 1, 671),
(3, 1, 672),
(3, 1, 673),
(3, 1, 674),
(3, 1, 675),
(3, 1, 676),
(3, 1, 677),
(3, 1, 678),
(3, 1, 679),
(3, 1, 680),
(3, 1, 681),
(3, 1, 682),
(3, 1, 683),
(3, 1, 684),
(3, 1, 685),
(3, 1, 686),
(3, 1, 687),
(3, 1, 688),
(3, 1, 689),
(3, 1, 690),
(3, 1, 691),
(3, 1, 692),
(3, 1, 693),
(3, 1, 694),
(3, 1, 695),
(3, 1, 696),
(3, 1, 697),
(3, 1, 698),
(3, 1, 699),
(3, 1, 700),
(3, 1, 701),
(3, 1, 702),
(3, 1, 703),
(3, 1, 704),
(3, 1, 705),
(3, 1, 706),
(3, 1, 707),
(3, 1, 708),
(3, 1, 709),
(3, 1, 710),
(3, 1, 711),
(3, 1, 712),
(3, 1, 713),
(3, 1, 714),
(3, 1, 715),
(3, 1, 716),
(3, 1, 717),
(3, 1, 718),
(3, 1, 719),
(3, 1, 720),
(3, 1, 721),
(3, 1, 722),
(3, 1, 723),
(3, 1, 724),
(3, 1, 725),
(3, 1, 726),
(3, 1, 727),
(3, 1, 728),
(3, 1, 729),
(3, 1, 730),
(3, 1, 731),
(3, 1, 732),
(3, 1, 733),
(3, 1, 734),
(3, 1, 735),
(3, 1, 736),
(3, 1, 737),
(3, 1, 738),
(3, 1, 739),
(3, 1, 740),
(3, 1, 741),
(3, 1, 742),
(3, 1, 743),
(3, 1, 744),
(3, 1, 745),
(3, 1, 746),
(3, 1, 747),
(3, 1, 748),
(3, 1, 749),
(3, 1, 750),
(3, 1, 751),
(3, 1, 752),
(3, 1, 753),
(3, 1, 754),
(3, 1, 755),
(3, 1, 756),
(3, 1, 757),
(3, 1, 758),
(3, 1, 759),
(3, 1, 760),
(3, 1, 761),
(3, 1, 762),
(3, 1, 763),
(3, 1, 764),
(3, 1, 765),
(3, 1, 766),
(3, 1, 767),
(3, 1, 768),
(3, 1, 769),
(3, 1, 770),
(3, 1, 771),
(3, 1, 772),
(3, 1, 773),
(3, 1, 774),
(3, 1, 775),
(3, 1, 776),
(3, 1, 777),
(3, 1, 778),
(3, 1, 779),
(3, 1, 780),
(3, 1, 781),
(3, 1, 782),
(3, 1, 783),
(3, 1, 784),
(3, 1, 785),
(3, 1, 786),
(3, 1, 787),
(3, 1, 788),
(3, 1, 789),
(3, 1, 790),
(3, 1, 791),
(3, 1, 792),
(3, 1, 793),
(3, 1, 794),
(3, 1, 795),
(3, 1, 796),
(3, 1, 797),
(3, 1, 798),
(3, 1, 799),
(3, 1, 800),
(3, 1, 801),
(3, 1, 802),
(3, 1, 803),
(3, 1, 804),
(3, 1, 805),
(3, 1, 806),
(3, 1, 807),
(3, 1, 808),
(3, 1, 809),
(3, 1, 810),
(3, 1, 811),
(3, 1, 812),
(3, 1, 813),
(3, 1, 814),
(3, 1, 815),
(3, 1, 816),
(3, 1, 817),
(3, 1, 818),
(3, 1, 819),
(3, 1, 820),
(3, 1, 821),
(3, 1, 822),
(3, 1, 823),
(3, 1, 824),
(3, 1, 825),
(3, 1, 826),
(3, 1, 827),
(3, 1, 828),
(3, 1, 829),
(3, 1, 830),
(3, 1, 831),
(3, 1, 832),
(3, 1, 833),
(3, 1, 834),
(3, 1, 835),
(3, 1, 836),
(3, 1, 837),
(3, 1, 838),
(3, 1, 839),
(3, 1, 840),
(3, 1, 841),
(3, 1, 842),
(3, 1, 843),
(3, 1, 844),
(3, 1, 845),
(3, 1, 846),
(3, 1, 847),
(3, 1, 848),
(3, 1, 849),
(3, 1, 850),
(3, 1, 851),
(3, 1, 852),
(3, 1, 853),
(3, 1, 854),
(3, 1, 855),
(3, 1, 856),
(3, 1, 857),
(3, 1, 858),
(3, 1, 859),
(3, 1, 860),
(3, 1, 861),
(3, 1, 862),
(3, 1, 863),
(3, 1, 864),
(3, 1, 865),
(3, 1, 866),
(3, 1, 867),
(3, 1, 868),
(3, 1, 869),
(3, 1, 870),
(3, 1, 871),
(3, 1, 872),
(3, 1, 873),
(3, 1, 874),
(3, 1, 875),
(3, 1, 876),
(3, 1, 877),
(3, 1, 878),
(3, 1, 879),
(3, 1, 880),
(3, 1, 881),
(3, 1, 882),
(3, 1, 883),
(3, 1, 884),
(3, 1, 885),
(3, 1, 886),
(3, 1, 887),
(3, 1, 888),
(3, 1, 889),
(3, 1, 890),
(3, 1, 891),
(3, 1, 892),
(3, 1, 893),
(3, 1, 894),
(3, 1, 895),
(3, 1, 896),
(3, 1, 897),
(3, 1, 898),
(3, 1, 899),
(3, 1, 900),
(3, 1, 901),
(3, 1, 902),
(3, 1, 903),
(3, 1, 904),
(3, 1, 905),
(3, 1, 906),
(3, 1, 907),
(3, 1, 908),
(3, 1, 909),
(3, 1, 910),
(3, 1, 911),
(3, 1, 912),
(3, 1, 913),
(3, 1, 914),
(3, 1, 915),
(3, 1, 916),
(3, 1, 917),
(3, 1, 918),
(3, 1, 919),
(3, 1, 920),
(3, 1, 921),
(3, 1, 922),
(3, 1, 923),
(3, 1, 924),
(3, 1, 925),
(3, 1, 926),
(3, 1, 927),
(3, 1, 928),
(3, 1, 929),
(3, 1, 930),
(3, 1, 931),
(3, 1, 932),
(3, 1, 933),
(3, 1, 934),
(3, 1, 935),
(3, 1, 936),
(3, 1, 937),
(3, 1, 938),
(3, 1, 939),
(3, 1, 940),
(3, 1, 941),
(3, 1, 942),
(3, 1, 943),
(3, 1, 944),
(3, 1, 945),
(3, 1, 946),
(3, 1, 947),
(3, 1, 948),
(3, 1, 949),
(3, 1, 950),
(3, 1, 951),
(3, 1, 952),
(3, 1, 953),
(3, 1, 954),
(3, 1, 955),
(3, 1, 956),
(3, 1, 957),
(3, 1, 958),
(3, 1, 959),
(3, 1, 960),
(3, 1, 961),
(3, 1, 962),
(3, 1, 963),
(3, 1, 964),
(3, 1, 965),
(3, 1, 966),
(3, 1, 967),
(3, 1, 968),
(3, 1, 969),
(3, 1, 970),
(3, 1, 971),
(3, 1, 972),
(3, 1, 973),
(3, 1, 974),
(3, 1, 975),
(3, 1, 976),
(3, 1, 977),
(3, 1, 978),
(3, 1, 979),
(3, 1, 980),
(3, 1, 981),
(3, 1, 982),
(3, 1, 983),
(3, 1, 984),
(3, 1, 985),
(3, 1, 986),
(3, 1, 987),
(3, 1, 988),
(3, 1, 989),
(3, 1, 990),
(3, 1, 991),
(3, 1, 992),
(3, 1, 993),
(3, 1, 994),
(3, 1, 995),
(3, 1, 996),
(3, 1, 997),
(3, 1, 998),
(3, 1, 999)
)
DELETE FROM
customer
WHERE
(c_w_id, c_d_id, c_id) IN (SELECT * FROM cte0);

Since the keys are unique per row, using a sing scalar delete will not work. Using the inline table by unloading an array of values makes this faster delete. The same approach can be used for updates.

--

--