> Created a table with one column of type 'int' and partitioned by that > column. Created 1 million partitions using following queries.
Sorry. It's not 1 million. Its 10,000 partitions. -- Thanks & Regards, Nitin Jadhav On Thu, May 20, 2021 at 12:21 AM Nitin Jadhav <nitinjadhavpostg...@gmail.com> wrote: > > > 'git apply' is very picky. Use 'patch -p1' to apply your patches instead. > > > > Also, use 'git diff --check' or 'git log --check' before generating > > patches to send, and fix any whitespace errors before submitting. > > Thanks for the suggestion. I will follow these. > > > I see that you have made a theoretical argument for why this should be > > good for performance, but it would be better to have some test results > > that show that it works out in practice. Sometimes things seem like > > they ought to be more efficient but turn out to be less efficient when > > they are actually tried. > > Created a table with one column of type 'int' and partitioned by that > column. Created 1 million partitions using following queries. > > create table t(a int) partition by list(a); > select 'create table t_' || i || ' partition of t for > values in (' || i || ');' > from generate_series(1, 10000) i > \gexec > > After this I tried to create 10 partitions and observed the time taken > to execute. Here is the data for 'with patch'. > > postgres@34077=#select 'create table t_' || i || ' partition of t for > postgres'# values in (' || i || ');' > postgres-# from generate_series(10001, 10010) i > postgres-# \gexec > CREATE TABLE > Time: 36.863 ms > CREATE TABLE > Time: 46.645 ms > CREATE TABLE > Time: 44.915 ms > CREATE TABLE > Time: 39.660 ms > CREATE TABLE > Time: 42.188 ms > CREATE TABLE > Time: 43.163 ms > CREATE TABLE > Time: 44.374 ms > CREATE TABLE > Time: 45.117 ms > CREATE TABLE > Time: 40.340 ms > CREATE TABLE > Time: 38.604 ms > > The data for 'without patch' looks like this. > > postgres@31718=#select 'create table t_' || i || ' partition of t for > postgres'# values in (' || i || ');' > postgres-# from generate_series(10001, 10010) i > postgres-# \gexec > CREATE TABLE > Time: 45.917 ms > CREATE TABLE > Time: 46.815 ms > CREATE TABLE > Time: 44.180 ms > CREATE TABLE > Time: 48.163 ms > CREATE TABLE > Time: 45.884 ms > CREATE TABLE > Time: 48.330 ms > CREATE TABLE > Time: 48.614 ms > CREATE TABLE > Time: 48.376 ms > CREATE TABLE > Time: 46.380 ms > CREATE TABLE > Time: 48.233 ms > > If we observe above data, we can see the improvement with the patch. > The average time taken to execute for the last 10 partitions is. > With patch - 42.1869 ms > Without patch - 47.0892 ms. > > With respect to memory usage, AFAIK the allocated memory gets cleaned > during deallocation of the memory used by the memory context. So at > the end of the query, we may see no difference in the memory usage but > during the query execution it tries to get less memory than before. > Maybe during some worst case scenario, if there is less memory > available, we may see 'out of memory' errors without the patch but it > may work with the patch. I have not done experiments in this angle. I > am happy to do it if required. > > Please share your thoughts. > > -- > Thanks & Regards, > Nitin Jadhav > > On Tue, May 18, 2021 at 11:19 PM Robert Haas <robertmh...@gmail.com> wrote: > > > > On Tue, May 18, 2021 at 1:29 PM Nitin Jadhav > > <nitinjadhavpostg...@gmail.com> wrote: > > > > The CFBOT had no issues with the patches, so I suspect an issue on your > > > > side. > > > > http://cfbot.cputube.org/nitin-jadhav.html > > > > > > I am getting the following error when I try to apply in my machine. > > > > > > $ git apply > > > ../patches/0001-Removed-extra-memory-allocations-from-create_list_bo.patch > > > ../patches/0001-Removed-extra-memory-allocations-from-create_list_bo.patch:18: > > > trailing whitespace. > > > > 'git apply' is very picky. Use 'patch -p1' to apply your patches instead. > > > > Also, use 'git diff --check' or 'git log --check' before generating > > patches to send, and fix any whitespace errors before submitting. > > > > I see that you have made a theoretical argument for why this should be > > good for performance, but it would be better to have some test results > > that show that it works out in practice. Sometimes things seem like > > they ought to be more efficient but turn out to be less efficient when > > they are actually tried. > > > > -- > > Robert Haas > > EDB: http://www.enterprisedb.com