Datensätze generieren
Wie werden Datensätze für Testdaten generiert?
Testdaten helfen dabei, die Korrektheit und Robustheit von Datenintegrationsprozessen zu überprüfen oder Performance-Tests einzelner SQL-Statements durchzuführen.
Wenn eine größere Anzahl von Datensätzen benötigt wird, ist es in der Regel effizienter, die von der Datenbank bereitgestellten Funktionen zur Zeilen- oder Zahlengenerierung zu nutzen, anstatt beispielsweise rekursive CTEs einzusetzen.
SQL Code
select id
from unnest (generate_array (1, 100000)) as id;
SQL Code
select number + 1 as id
from system.numbers
limit 100000;
SQL Code
select id
from generate_series(1, 100000) as id;
Als Alternative kann range verwendet werden. Dabei ist zu beachten, dass die obere Grenze exklusiv ist.
select id
from range(1, 100001) as id;
SQL Code
select level as id
from dual connect by level <= 100000;
SQL Code
select level as id
from dual connect by level <= 100000;
SQL Code
select generate_series (1, 100000) as id;
SQL Code
select generate_series (1, 100000) as id;
SQL Code
select seq4() + 1 as id
from table (generator (rowcount => 100000));
SQL Code
with e1 as (
select 1 as n
from (values (0),(0),(0),(0),(0),(0),(0),(0),(0),(0)) v(n) -- 10 rows
),
e2 as (select 1 from e1 a cross join e1 b), -- 10^2 = 100 rows
e3 as (select 1 from e2 a cross join e2 b), -- 10^4 = 10.000 rows
e4 as (select 1 from e3 a cross join e3 b), -- 10^8 = 100.000.000 rows
nums as (
select top (100000)
row_number() over (order by (select null)) as id
from E4
)
select id
from nums;