Hi Adam, thanks for your suggestion. Unfortunately, it doesn't help in my case. Essentially, we are talking about a time series (rows) of n different measurements (columns) - so normalization would lead to a doubling of the storage space (add a measurement_id to each measurement).
Second, the most common use case is to view the table in the currently foreseen format - so, I'd pay both in space and time... Anyway, thanks for the suggestion! Regards, Stefan Adam DeVita wrote: > > Good day, > > In general I try to work within the limits of any database engine that I > am > using. Often, the limits are there for good reasons (such as speed > problems). I would suggest seeing if there is a way to normalize the big > tables such that infrequently used columns are split into tables that > aren't > joined in often. (The principal I'm using is borrowed from hardware > architecture "Make the common case fast, and ensure the uncommon case is > correct.") > > It may or may not be sensible given your data, but there may be an > opportunity to reduce the number of columns by making an encoded column > to > aggregate, such as lots of mutually exclusive binary flag fields. > > regards, > Adam > > On Mon, Jan 11, 2010 at 3:46 PM, Stefan_E <se_m...@hotmail.com> wrote: > >> >> Hello all, >> >> I'm considering using SQLite for a new application. The schema will >> contain >> a bunch of small tables with few columns (~10) plus one large table with >> many columns and 1000...10000 rows. >> >> 'Many columns' typically fits into the default 2000 column limit, but can >> exceed it at times (that is, on some of the foreseen databases). It will >> never exceed the theoretical / compile time selectable limit of 32k >> columns. >> Queries on this big table will be rather straight-forward: either on the >> table alone (SELECT * FROM table_large) or one join on one field to one >> of >> the smaller tables. >> >> The http://www.sqlite.org/limits.html Limits page warns: "There are >> places >> in the SQLite code generator that use algorithms that are O(N²) where N >> is >> the number of columns." which is kind of discouraging to increase max. >> column count at compile time, but is not very specific about when this >> happens... >> >> I now have two design options: >> - increase max. column count at compile time (possibly setting >> SQLITE_LIMIT_COLUMN on databases where I don't need more than (say) 1000 >> columns) and accept the quoted performance degradation. >> - alternatively, in the client handle cases with more than 2000 columns, >> splitting the storage up into two (or more) tables >> >> Any advise, experience - or more specifics on the "O(N²)" remark are >> highly >> welcome! >> >> Thanks for your help - Stefan >> -- >> View this message in context: >> http://old.nabble.com/Limitation-on-Column-count-tp27117364p27117364.html >> Sent from the SQLite mailing list archive at Nabble.com. >> >> _______________________________________________ >> sqlite-users mailing list >> sqlite-users@sqlite.org >> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users >> > > > > -- > VerifEye Technologies Inc. > 905-948-0015x245 > 7100 Warden Ave, Unit 3 > Markham ON, L3R 8B5 > Canada > _______________________________________________ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > > -- View this message in context: http://old.nabble.com/Limitation-on-Column-count-tp27117364p27131144.html Sent from the SQLite mailing list archive at Nabble.com. _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users