본문 바로가기

RowGeneration3

Row Generation 튜닝#1 - SingleStore ※ 테스트 장비 사양 - 8vCPU, 16GB ​ 이전 포스트에서 SingleStore 의 Row Generation 은 7억건에서 메모리 부족 에러가 발생했습니다. 그 이유는 create_array 및 table 로 변환한 모든 row 를 대상으로 row_number() 함수로 정렬을 수행하기 때문에 부가적인 메모리가 더 필요하기 때문입니다. 물론 정렬 작업 때문에 시간도 조금 더 필요합니다. create or replace function gen_rows(n bigint) returns table as return select row_number() over () as rn from table(create_array(n):>array(bigint)); 이제 정렬이 필요없도록 튜닝을 해보겠습니다. 먼저.. 2024. 1. 18.
Row Generation 성능 비교 - SingleStore, Oracle, MySQL, PostgreSQL 🎯 개요 ​이전 포스트에서 Row Generation 방법을 소개해 드렸습니다. 2024.01.04 - [연구노트] - Row Generation - SingleStore, Oracle, MySQL PostgreSQL 이번 포스트에서는 각 DB 마다 Row Generation 성능을 간단하게 비교하도록 하겠습니다. 비교 테스트에 사용한 장비는 8vCPU, 16GB 의 사양으로 Hands-On 테스트에 사용했던 장비를 그대로 사용하였고 여기에 Oracle XE 21c 를 추가로 설치했습니다. ​ ​ 🎯 Oracle Oracle XE 21c는 SGA+PGA 합쳐서 2GB 를 넘지 못하도록 제약이 걸려 있습니다. 따라서 불가피하게 PGA가 3000MB 로 설정되어 있는 Autonomous Database 에서.. 2024. 1. 12.
Row Generation - SingleStore, Oracle, MySQL PostgreSQL 🎯 Row Generation ​이번 포스트에서는 임의의 n개 row 를 생성하는 방법을 알아 보겠습니다. ​ 🎯 Oracle ​Oracle 에서는 Hierarchical Query 를 이용해서 임의의 row 를 생성합니다. SQL> select rownum from dual connect by level select * from table([1,2,3]); +-----------+ | table_col | +-----------+ | 1 | | 2 | | 3 | +-----------+ 3 rows in set (0.00 sec) 만일 많은 row 를 생성해야 한다면 다음과 같이 create_array 함수를 이용합니다. singlestore> select * from table(create_array.. 2024. 1. 4.