This is a discussion on Re: Informix limitations, should we be using Oracle? within the Informix forums, part of the Database Server Software category; --> I read all you post and it was very interesting... I have only 2 thing to say and have ...
| |||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| I read all you post and it was very interesting... I have only 2 thing to say and have in count that I don't know anything about XPS: 1. In IDS 9.x, you can't select a NULL, you can use it in an UPDATE, INSERT or DELETE. You can workaround this by creating an sp sp_genull() who return a null and that do it... but is ugly... If XPS can do it... it's good, inf fact there are some very cool features only in the XPS SQL I wish to have in IDS. 2. In IDS there is no FULL OUTER JOIN... in some cases this is very usefull. If XPS have it it's good. As I said, I wish SQL-IDS has more features of XPS-SQL Chucho! Jack Parker wrote: > I must have been offline during this discussion. I ran across it today > looking for something else. Although late, I will add my .02. (embedded). > > The next time one of these come around and I'm not visible - please alert me > to it? > > cheers > j. > > >>Hi, >> >>We are trying to implement what will become a multi-terrabyte data >>warehouse on Informix XPS but have hit a number of significant >>problems. We are at the point where we are considering switching >>database providers to Oracle but want to be sure that the problems we >>are encountering are indeed valid issues. We have prepared a document >>of which I have included an extract that details the issues we are >>having. If anyone can provide me with feedback on these issues to let >>me know if I'm barking up the wrong tree or if indeed they are issues, >>it would be greatly appreciated. We are currently running Informix XPS >>8.3.1 on a 4CPU, 4Gb HP N4000 with HP-UX 11.11. >> >> >>Informix XPS Issues and Comparison to Oracle >> >>Performance >> >>As detailed on TPC websites >>http://www.tpc.org/tpch/results/tpch...p?orderby=dbms >>http://www.tpc.org/information/benchmarks.asp > > > We all know about benchmarks - regardless - TPC-C is not the benchmark you > would want to use to measure data warehouse performance, you would really > want TPC-H, (as you mention below) - but even that is flawed in that it > insists upon ongoing transactions (which are not normal warehouse processes) > during the benchmark. > > >>Looking at the TPC-H results for a 1000Gb database running on an >>HP9000 Superdome >>runs 2.65 times faster than XPS. The pricing of the two databases as >>reflected in the Price/QphH also shows that Oracle represents 3.5 >>times more 'bang for the buck' than XPS. >> > > > Alas these results are long gone, IBM is also not in the business of > benchmarking XPS, however; having worked with both databases, I can assure > you that XPS will scale infinitely while Oracle will not. > > >>Issues : >> >>Memory Management - CRITICAL >> >>XPS has an essential flaw in it's memory management implementation for >>parallel Decision Support System Queries. The Resource Grant Manager >>configuration makes it necessary to allocate either large memory >>segments or small memory segments to all sessions utilising Decision >>Support Resources (large joins, sorts, ordering etc). >> >>It is expected that intention is so that Decision Support System (i.e. >>Warehouse queries - DSS) queries can preallocate huge memory segments >>through this configuration. > > > The intent of memory allocation is to pre-allocate resources to intensive > queries. This is by no means a requirement for XPS, nor is it a bad thing. > With judicious use this memory can be put to very advantageous use in index > building, hash joins, groups and sorts - I gather Oracle has a similar > capability, I have not seen it clearly put to use yet. > > >>When DSS queries are issued the memory is allocated up to the >>DS_MEMORY_TOTAL. When this occurs, all other DSS queries are queued. >>It should be noted that the memory allocated is a fixed amount, >>regardless of the complexity or priority of the query being executed - >>i.e. Simple counts are allocated the same amount of memory as massive >>join and sort queries > > > Well, not quite. You can allocate as much memory AS YOU ARE ALLOWED TO - > which is under the control of the DBA. I realize that with Oracle a 'simple > count' requires a full table (or index) scan, with Informix it is a single > read against the table header and virtually instantaneous. You can also use > a light scan for a filtered read (count(*) ... where condition) - this does > not chew up memory. Oracle has no equivalent to the light scan - which is > on average 4x faster than a traditional read. > > Yes, you can give a query enough memory so that other queries are gated and > will not interfere with your process while it runs. This is preferable to > the thrashing which would occur if this were not an option. > > >>ETL tools parallelise their processing for enhanced performance. Using >>XPS, it is not uncommon that queries issued in the same program may >>expend all of the DS_TOTAL_MEMORY and other SQL statements within the >>same program are queued. This is the cause of the classic Dawa problem >>- 'the locked plan'. > > > Is it not a wonderful thing when you can fully utilize the power of the > database and the machine with one query? At the same time you can prevent > this from occuring. > > >>This situation is exacerbated by the fact that the other statements >>within the program still retain their memory in Informix - so all SQL >>statements within the database are 'locked'. > > > Not quite, only those which require DSS resources, so your 'simple count' > would go straight through. > > >>A resolution to this is to create small memory allocations for each >>session. Underallocating the memory segment size causes Reports (which >>do lots or GROUPING and ORDERING) to run extremely slowly, or exceed >>temp space allocation and fail. > > > Exceeding temp space is a DBA matter - much akin to exceeding the size of a > rollback segment under Oracle. Either you are properly sized or you are > not. XPS, and all Informix engines, will use what memory is available to > the process and swap to disk what is not - this is the same thing that > Oracle will do. If you don't have enough disk - well you're SOL. > > >>Oracle (or Informix IDS) does not employ the Resource Grant Manager >>architecture. Small queries use small memory, and large queries use >>large amounts of memory as required. This means the database slows >>down, but does not lock on memory. > > > Actually IDS and XPS have the same memory allocation features (PDQPRIORITY), > although under IDS it's called Memory Grant Manager, but they're the same > thing. I have never seen XPS 'lock on memory'. > > >>It should be noted that XPS (Extended Parallel Server) refers to >>parallelism in Platforms - it is evident that for SQL queries that it >>is NOT optimised for parallelism. >> > > > What have you been smoking? Where do you get this 'it is evident'? XPS > performs in parallel with everything, across all horizontal and vertical > portions of an operation. It exhibits the highest degree of parallelism > that has ever been offered to the public. > > >>Removing Sessions >> >>Informix XPS 8.31 D has an outstanding bug in which it is not possible >>to remove a Informix client session with assurance. Failed attempts to >>issue the remove session command have resulted in: >>· reboot of database instance >>· reboot of Unix >>· inability to restart the database instance > > > This is an issue which was corrected in 8.32, which was released 2.5 years > ago. At your writing XPS was up to version 8.4 > > >>Neither does it appear possible to link an Informix client session to >>a Unix session id / thread - making it impossible to sessions to be >>identified and removed at the Operating System level. > > > And this is a good thing. Alas with Oracle (and db2) all user sessions are > operating systems processes, this means that context switching is removed > from the control of the database and handed to the operating system which > really has no clue as to what's going on inside the engine. Believe me, you > want the threads within the engine and not subject to the OS overhead. You > can in fact determine which sessions are tied to which clients with a simple > onstat command. > > >>Oracle, however, runs each session as an easily identifiable Unix >>process, and sessions can be removed either through DBA commands, or >>at the Operating System Level. > > > And sometimes this will even remove the locks held by these sessions when > they are thusly killed. > > >>Exceeding lock count >> >>Informix locks database records using memory latches. A maximum number >>of memory latches is specified in the config file. When this limit is >>exceeded the database server crashes. > > > Not quite. At the time you wrote this, a counter was incremented to > indicate that the lock threshold had been exceeded. However in current > releases Informix has dynamic locks, more locks are allocated as needed. > > >>This is exacerbated when the database restarts and attempt to rollback >>the transaction that caused the locks to be exceeded - this again >>exceeds the maximum locks. In our experience, the only solution is to >>destroy and recreate the database. > > > There indeed were issues with XPS 8.31 where restarting the instance could > cause issues. Normally, those with support contracts would call the 'Down > Systems Group' which will answer the phone in under a minute and provide > sunset support (i.e. 24x7) until your engine is back on line. Those without > support would call the same group and be gently scolded - and then supported > in the same fashion. The last time I called Oracle support, I got a call > back three days later telling me to upgrade. > > >>Oracle does not use memory latches to lock records. It's standard >>row-level-locking is managed in the rollback segment architecture. >>Exceeding the rollback segment will not crash the database - it causes >>the session to rollback the current SQL transaction. >> > > > Which can be a lot of fun. But this is a moot point. It's a question of > sizing - if you size your rollback segments improperly - or choose the wrong > one with which to perform your transaction - you are hosed. The lesson is > that if you size things properly they work - whether they are Oracle or > Informix. > > >>Lack of diagnostic/monitoring tools >> >>No user friendly or graphical monitoring tools are available. This >>makes diagnosis and performance monitoring extremely difficult. >> > > > There is indeed no 'Informix' tool to compare to the Oracle Enterprise > Manager (did I get that right?). However there is a single standard command > (onstat) to which all monitoring activity has been tied - not to mention the > SQL interface to this same data. This can be much more effective than > waiting around for a GUI to load and display data which you then have to > drill into. I have to admit as an Oracle neophyte that I find the Oracle > GUI useful for handling tasks without any understanding of what lies beneath > them. > > >>Many monitoring and diagnostic tools are available for Oracle. Many of >>them are free. Administration, diagnosis and monitoring is vastly >>simplified. >> >>Raw partitions exacerbate the problem. >> > > > I'm not sure to which problem you refer. Raw partitions are very simple to > manage. > > >>Raw partitions and storage management >> >>Standard data storage in Informix is via RAW unix partitions. These >>partitions cannot be monitored via standard Unix utilities. They are >>more difficult to manage and create - Unix 'root' privileges are >>required to manage them. Furthermore, raw partitions used by Informix >>cannot be resized or grown. A completely new partition must be >>allocated. >> > > > 'Standard' is either 'cooked files' (OS files) or raw devices. You get a > 15% performance improvement with raw devices. Oracle has the same feature. > There is no similar benefit to raw devices under Oracle - I don't remember > why at present. With a raw device Informix gets to control I/O to the > device itself instead of going through the Unix file system - which tends to > not only slow things down, but opens a window of vulnerability - you write > to disk and commit, the database writes it to disk and thinks it made it, > but the OS didn't get that far - so your 'committed transaction' wasn't. > Management of raw spaces is incredibly simple - especially under XPS where > you can use wildcards to manage hundreds of such spaces at once. > > >>Informix can use cooked partitions, but it is not recommended by >>Informix for performance reasons. > > > True. > > >>Oracle standard data storage is via datafiles, which are 'normal' uni >>files. These files can be monitored for growth and utilisation much as >>any other Unix file. No special system privileges are required to add >>or resize datafiles. > > > Oh right - I forgot about the resize thing - I've already mentioned the Unix > filesystem issues. How can you resize a disk? If you buy an 80 GB disk - > can you make it larger? So I guess you're right, under Informix you can't > resize a raw disk, however you can add more of them and include them in the > same dbspace (tablespace) so that the new space is usable by tables which > need to grow in that space. So in fact you can 'resize' a dbspace. > > >>Fast Loading >> >>Our data warehouse employs fast loading capabilities (bypassing ODBC) >>in order to upload Mainframe EBCDIC data. > > > That is a good thing. We are delighted that Oracle has come to the table > with a fast (direct path) loader. We hope someday that it shows the same > sort of performance as is capable with the Informix parallel loader. We > further hope that some day it will allow you to unload data in the same > fashion. > > >>This feature is particular in Informix to XPS; in Oracle it is >>standard functionality. > > > Actually HPL and the light append has been around since 7.x, I first used it > around 1996. > > >>The reject output from Informix is a single-file mixture of ASCII >>error report and EBCDIC data. It is impossible to re-upload rejected >>records from an Informix EBCDIC reject file - All packed decimal, for >>instance, is corrupt. > > > Actually this is true with XPS. You do get a header to each row indicating > the error, you have to trim the header to retrieve your original data. > Interesting - this would be a good feature request if not already done. > With 7.x and 9.x engines the error is written to a separate file than the > error message or you have the option of allowing it to load and then picking > it out of a violation table later. For more on this topic visit > www.artentech.com/downloads.htm and look for the Informix Load FAQ. > > >>Oracle produces two output files when EBCDIC uploading - an error log, >>and an EBCDIC reject file - ready for reprocessing. >> > > > If you have an error, then there is a problem. In a DSS world, you don't > want to go chasing singleton rows, you want to do the whole thing again. > > >>We currently have to reprocess complete datasets, or reject complete >>datasets. With Oracle this would not be necessary. > > > This is ok when you are dealing with a small number of rows and can afford > the luxury of debugging each one. When you are dealing with billions of > rows and you have a problem, you really don't want to get into the details > of any individual row. I guess it's a question of how big you intend to > get. > > >>The administration of the External Table definitions in Informix is >>excessively onerous also. For instance - 6 sales invoice files for >>three states necessitates 18 external table definitions and 18 >>internal table definitions. Addition of EBCDIC datafiles for other >>states necessarily implies additional external and internal >>definitions. > > > Not sure what you're saying here. If you have 18 files to load, under XPS > you can define them all as a single external table. You can define this > single external table across filename, filesystems, coservers(each instance > in a cluster) and servers, you can define it with a single file statement > even (not 18) - it's pretty powerful. Furthermore, this file (or external > table) is visible to the database - you don't have to go through sqlldr to > get it into the database, you can treat it as a table and select columns > from it directly, or join it with other tables - whatever. It's really > cool. Even cooler - you can unload to it directly with a 'select <columns> > from <> insert into <>' statement. > > >>With Oracle only 6 internal tables are necessary - generic to the >>Invoice, they could be used for all states. This vastly simplifies >>Data Dictionary management. >> > > > See above. > > >>Limitation comparisons >> >>Informix XPS >>18 characters for database objects > > Ok. > > >>256 byte maximum row size in Indexes > > You use indices? Are you in a data warehouse environment or an OLTP > environment? XPS can perform the hash join so quickly that indices are a > detriment, not a requirement. What you might consider a fast join between > two tables with indices can be performed 100 times faster with a hash join - > but then you need some memory to play these sorts of games. Have a look at > http://www7b.boulder.ibm.com/dmdd/zo...rticle/parker/ > 0502parker.html for some examples. > > >>255 byte limit on varchar fields > > True, although you can go to text and have at least 2GB last time I > checked. > > >>SQL Restrictions - >>Cannot SELECT NULL > > What? Sure you can. > > >>No general DUAL table > > Create one. It's the same thing. I don't generally bother, I 'select > 'whatever' from systables where tabid=1'; It's the same thing. > > >>No MINUS operations > > True, that's a neat Oracle feature. > > >>No GROUP BY or Aggregation in SUBQUERY, NESTED QUERY, COMPOUND QUERY, > > >>EMBEDDED QUERY > > Haven't tried this. Never needed it. > > >>No Full OUTER JOIN > > Sure there is. Or do you mean that you want all rows from table 'a' and 'b' > even where neither intersect. Who's been dreaming up your data models? You > need to clean up your data if this is a requirement. But then I guess > Informix doesn't do that particular join. > > >>No Implicit ROWID > > Not anymore, you can ask for one if you need it. > > >>XPS - No true database flatfile Import Export > > Totally untrue. For that matter, has Oracle come up with a true flatfile > export yet? > > >>Varchar fields not treated as ANSI standard > > Well, you can use the ANSI standard if you like, you can also allocate a > minimum to each varchar which is incredibly useful when it comes time to > update. Unlike Oracle, which compresses data as much as possible to > preserve space - and then when you need to update it - oooops won't fit into > it's original space - have to move it to a new page - which can be time > consuming - the reservation of space allows the intelligent DBA to > counteract this sort of thing. > > >>No DISABLE CONSTRAINT commands - Must DROP and RECREATE constraints - > > Bullshit. You need to spend more time with the manual. > > >>Additional processing >>Stored procedures are not prepared - Object dependence not checked >>until runtime > > > Stored procedures, when compiled are checked against what is available - > compilation will fail if a required object is not present. What you should > properly say is that Oracle's PL/SQL is far superior to the Informix stored > procedure language. Within Oracle you can develop entire applications with > PL/SQL, the Informix approach to Stored procedures is more basic - to > perform this or that function - program logic does not truly belong in an > Informix SPL - more properly in one of it's more standard languages 4GL or > esql/c. Actually I'm not that crazy about the way Oracle will mark a > procedure as invalid when something that it depends on changes. This can be > a real pain to manage. I know what I need to rebuild - I don't need the > database thinking it knows better than me. > > >>Page size can only be 2 or 4k > > > or 8K. This isn't really an issue, unless you have some reason to need a > 48K page? You have data rows which are bigger than 8k? Why? Have you > considered a relational model? Informix will still support big rows, but > they will span pages. > > >>Oracle >>30 characters - more meaningful names > > If you can't fit it into 18 - why is 30 better? Why don't you bring up 9.4 > and it's support for object names of 128? IDS is the engine you should be > comparing to, not XPS. Oracle doesn't have anything to compare to XPS. > > >>Unlimited > > (this was the index size - not sure why you want this) > > >>4000 limit > > (2GB limit on text) > > >>No comparable restrictions > > How about 'order by 1,2,3'? You guys sure do like to type, especially those > 30 character names. > You're 'comparable restrictions' refer perhaps to the ANSI standard which is > a subset of all RDBMS vendors SQL. > > >>Flatfile IMPORT EXPORT available for backups and rebuilds > > But not a true flatfile. > > >>No comparable ANSI incompatibility > > Moot. > > >>DISABLE ENABLE DEFER VALIDATE NOVALIDATE CONSTRAINT possible > > The same basic stuff is available. Since this is not ANSI standard the name > may vary slightly. > > >>Stored procedures are compiled as PCODE > > ??? Informix stored procedures are also compiled into code within the > engine. Not sure where you are getting this stuff. > > >>Page size can be as large as 64K - 16 times fewer reads for DSS table >>scans > > > No, actually 8 times more reads. When I want one row, I don't want to pull > 64K, or 8 times the standard disk buffer - hence 8 disk reads instead of 1. > > >>Warehouse functional comparisons >> >>Informix >>Tables and related indexes are partitioned on the same key - > > > Untrue again. Hybrid fragmentation has been around for some time - > including back in 8.31. > > >>inflexible configuration >>GK Indexes - Index prejoin only > > > You need to be pulling out materialized views here - which is the proper > comparison to the GK index. > > >>Necessary to manage security utilising both OS and database levels > > > Sorry? This is an Oracle issue - you need two layers of security, Informix > uses the OS security. > > >>Sagent supports ODBC only for Informix > > > Who? > > >>Oracle >>Partitioning tables and indexes on alternate keys - flexible >>configuration for performance > > Moot. > > >>Materialised Views - Database managed JOINS of tables - Physically >>existing summary tables for enhanced performance. Time savings in >>aggregations > > > Yes, but then you have to refresh that summary table. I have no real > quarrel here, but you're comparing quasi-identical features and claiming > it's bad there and good here. > > >>Security and permission totally managed within the database > > > Ah, for clients perhaps. Still Informix is relying on their ability to > connect to the server, not on an additional layer of security within the > database. > > >>Sagent support for High Speed Loading into Oracle >> > > > I guess if Sagent is a requirement you should evaluate whether they are Open > enough for your current and future requirements. > > ----- > > But then you are comparing volkswagens and ferraris. XPS is a true > clustered shared nothing environment which can scale literally infinitely - > ok I am getting away from myself - it can only have 32K coservers and each > can only support 32 Pedabytes of data - so if you need to go beyond that > you'd have to pick up the phone and ask the engineers to bump the counter - > the thing is that with XPS this is not a theoretical limit, performance does > not drop off as you add more instances (coservers) to the cluster - it > continues to scale linearly. With Oracle this will only happen on a slide > projector. There are only two other databases currently available which > have the architecture to scale in this fashion - DB2 (pdf or whatever it's > called now) and Teradata. If you want to compare Oracle - you need to be > comparing to Informix 9. > > Yeah sure RAC - give me a break, it's all controlled through a single > manager. Bottleneck city. > > Perhaps obviously you have (had) a need to justify going to Oracle over XPS. > Perhaps you know Oracle better and are more comfortable with it - fine - > that's a good enough reason. DBA skills are more generally expensive than > the database itself. Just don't try to justify it by trying to compare an > apple with a mango. > > As far as features as concerned, you've mentioned quite a few that XPS > doesn't have, or that you haven't uncovered yet. You might also want to > look at the XPS 'UPDATE JOIN' and 'DELETE JOIN' statements - talk about > supporting a warehouse - they rock. There are others, but I digress. > > Tell you what. Send me a copy of your schema, some data and some code, and > I'll put my XPS instance (P4 2.4Ghz, 2xIDE box) up against whatever you > have. Maybe IBM won't benchmark, but I will. > > cheers > j. > > > > -- Atte, Jesús Antonio Santos Giraldo jeansagi@myrealbox.com jeansagi@netscape.net sending to informix-list |
| |||
| What wrong with select * from table where colname is null; seems to work for me Jean Sagi wrote: > > I read all you post and it was very interesting... > > I have only 2 thing to say and have in count that I don't know anything > about XPS: > > 1. In IDS 9.x, you can't select a NULL, you can use it in an UPDATE, > INSERT or DELETE. You can workaround this by creating an sp sp_genull() > who return a null and that do it... but is ugly... > If XPS can do it... it's good, inf fact there are some very cool > features only in the XPS SQL I wish to have in IDS. > > 2. In IDS there is no FULL OUTER JOIN... in some cases this is very > usefull. If XPS have it it's good. > > As I said, I wish SQL-IDS has more features of XPS-SQL > > Chucho! > > Jack Parker wrote: > > I must have been offline during this discussion. I ran across it today > > looking for something else. Although late, I will add my .02. (embedded). > > > > The next time one of these come around and I'm not visible - please alert me > > to it? > > > > cheers > > j. > > > > > >>Hi, > >> > >>We are trying to implement what will become a multi-terrabyte data > >>warehouse on Informix XPS but have hit a number of significant > >>problems. We are at the point where we are considering switching > >>database providers to Oracle but want to be sure that the problems we > >>are encountering are indeed valid issues. We have prepared a document > >>of which I have included an extract that details the issues we are > >>having. If anyone can provide me with feedback on these issues to let > >>me know if I'm barking up the wrong tree or if indeed they are issues, > >>it would be greatly appreciated. We are currently running Informix XPS > >>8.3.1 on a 4CPU, 4Gb HP N4000 with HP-UX 11.11. > >> > >> > >>Informix XPS Issues and Comparison to Oracle > >> > >>Performance > >> > >>As detailed on TPC websites > >>http://www.tpc.org/tpch/results/tpch...p?orderby=dbms > >>http://www.tpc.org/information/benchmarks.asp > > > > > > We all know about benchmarks - regardless - TPC-C is not the benchmark you > > would want to use to measure data warehouse performance, you would really > > want TPC-H, (as you mention below) - but even that is flawed in that it > > insists upon ongoing transactions (which are not normal warehouse processes) > > during the benchmark. > > > > > >>Looking at the TPC-H results for a 1000Gb database running on an > >>HP9000 Superdome > >>runs 2.65 times faster than XPS. The pricing of the two databases as > >>reflected in the Price/QphH also shows that Oracle represents 3.5 > >>times more 'bang for the buck' than XPS. > >> > > > > > > Alas these results are long gone, IBM is also not in the business of > > benchmarking XPS, however; having worked with both databases, I can assure > > you that XPS will scale infinitely while Oracle will not. > > > > > >>Issues : > >> > >>Memory Management - CRITICAL > >> > >>XPS has an essential flaw in it's memory management implementation for > >>parallel Decision Support System Queries. The Resource Grant Manager > >>configuration makes it necessary to allocate either large memory > >>segments or small memory segments to all sessions utilising Decision > >>Support Resources (large joins, sorts, ordering etc). > >> > >>It is expected that intention is so that Decision Support System (i.e. > >>Warehouse queries - DSS) queries can preallocate huge memory segments > >>through this configuration. > > > > > > The intent of memory allocation is to pre-allocate resources to intensive > > queries. This is by no means a requirement for XPS, nor is it a bad thing. > > With judicious use this memory can be put to very advantageous use in index > > building, hash joins, groups and sorts - I gather Oracle has a similar > > capability, I have not seen it clearly put to use yet. > > > > > >>When DSS queries are issued the memory is allocated up to the > >>DS_MEMORY_TOTAL. When this occurs, all other DSS queries are queued. > >>It should be noted that the memory allocated is a fixed amount, > >>regardless of the complexity or priority of the query being executed - > >>i.e. Simple counts are allocated the same amount of memory as massive > >>join and sort queries > > > > > > Well, not quite. You can allocate as much memory AS YOU ARE ALLOWED TO - > > which is under the control of the DBA. I realize that with Oracle a 'simple > > count' requires a full table (or index) scan, with Informix it is a single > > read against the table header and virtually instantaneous. You can also use > > a light scan for a filtered read (count(*) ... where condition) - this does > > not chew up memory. Oracle has no equivalent to the light scan - which is > > on average 4x faster than a traditional read. > > > > Yes, you can give a query enough memory so that other queries are gated and > > will not interfere with your process while it runs. This is preferable to > > the thrashing which would occur if this were not an option. > > > > > >>ETL tools parallelise their processing for enhanced performance. Using > >>XPS, it is not uncommon that queries issued in the same program may > >>expend all of the DS_TOTAL_MEMORY and other SQL statements within the > >>same program are queued. This is the cause of the classic Dawa problem > >>- 'the locked plan'. > > > > > > Is it not a wonderful thing when you can fully utilize the power of the > > database and the machine with one query? At the same time you can prevent > > this from occuring. > > > > > >>This situation is exacerbated by the fact that the other statements > >>within the program still retain their memory in Informix - so all SQL > >>statements within the database are 'locked'. > > > > > > Not quite, only those which require DSS resources, so your 'simple count' > > would go straight through. > > > > > >>A resolution to this is to create small memory allocations for each > >>session. Underallocating the memory segment size causes Reports (which > >>do lots or GROUPING and ORDERING) to run extremely slowly, or exceed > >>temp space allocation and fail. > > > > > > Exceeding temp space is a DBA matter - much akin to exceeding the size of a > > rollback segment under Oracle. Either you are properly sized or you are > > not. XPS, and all Informix engines, will use what memory is available to > > the process and swap to disk what is not - this is the same thing that > > Oracle will do. If you don't have enough disk - well you're SOL. > > > > > >>Oracle (or Informix IDS) does not employ the Resource Grant Manager > >>architecture. Small queries use small memory, and large queries use > >>large amounts of memory as required. This means the database slows > >>down, but does not lock on memory. > > > > > > Actually IDS and XPS have the same memory allocation features (PDQPRIORITY), > > although under IDS it's called Memory Grant Manager, but they're the same > > thing. I have never seen XPS 'lock on memory'. > > > > > >>It should be noted that XPS (Extended Parallel Server) refers to > >>parallelism in Platforms - it is evident that for SQL queries that it > >>is NOT optimised for parallelism. > >> > > > > > > What have you been smoking? Where do you get this 'it is evident'? XPS > > performs in parallel with everything, across all horizontal and vertical > > portions of an operation. It exhibits the highest degree of parallelism > > that has ever been offered to the public. > > > > > >>Removing Sessions > >> > >>Informix XPS 8.31 D has an outstanding bug in which it is not possible > >>to remove a Informix client session with assurance. Failed attempts to > >>issue the remove session command have resulted in: > >>· reboot of database instance > >>· reboot of Unix > >>· inability to restart the database instance > > > > > > This is an issue which was corrected in 8.32, which was released 2.5 years > > ago. At your writing XPS was up to version 8.4 > > > > > >>Neither does it appear possible to link an Informix client session to > >>a Unix session id / thread - making it impossible to sessions to be > >>identified and removed at the Operating System level. > > > > > > And this is a good thing. Alas with Oracle (and db2) all user sessions are > > operating systems processes, this means that context switching is removed > > from the control of the database and handed to the operating system which > > really has no clue as to what's going on inside the engine. Believe me, you > > want the threads within the engine and not subject to the OS overhead. You > > can in fact determine which sessions are tied to which clients with a simple > > onstat command. > > > > > >>Oracle, however, runs each session as an easily identifiable Unix > >>process, and sessions can be removed either through DBA commands, or > >>at the Operating System Level. > > > > > > And sometimes this will even remove the locks held by these sessions when > > they are thusly killed. > > > > > >>Exceeding lock count > >> > >>Informix locks database records using memory latches. A maximum number > >>of memory latches is specified in the config file. When this limit is > >>exceeded the database server crashes. > > > > > > Not quite. At the time you wrote this, a counter was incremented to > > indicate that the lock threshold had been exceeded. However in current > > releases Informix has dynamic locks, more locks are allocated as needed. > > > > > >>This is exacerbated when the database restarts and attempt to rollback > >>the transaction that caused the locks to be exceeded - this again > >>exceeds the maximum locks. In our experience, the only solution is to > >>destroy and recreate the database. > > > > > > There indeed were issues with XPS 8.31 where restarting the instance could > > cause issues. Normally, those with support contracts would call the 'Down > > Systems Group' which will answer the phone in under a minute and provide > > sunset support (i.e. 24x7) until your engine is back on line. Those without > > support would call the same group and be gently scolded - and then supported > > in the same fashion. The last time I called Oracle support, I got a call > > back three days later telling me to upgrade. > > > > > >>Oracle does not use memory latches to lock records. It's standard > >>row-level-locking is managed in the rollback segment architecture. > >>Exceeding the rollback segment will not crash the database - it causes > >>the session to rollback the current SQL transaction. > >> > > > > > > Which can be a lot of fun. But this is a moot point. It's a question of > > sizing - if you size your rollback segments improperly - or choose the wrong > > one with which to perform your transaction - you are hosed. The lesson is > > that if you size things properly they work - whether they are Oracle or > > Informix. > > > > > >>Lack of diagnostic/monitoring tools > >> > >>No user friendly or graphical monitoring tools are available. This > >>makes diagnosis and performance monitoring extremely difficult. > >> > > > > > > There is indeed no 'Informix' tool to compare to the Oracle Enterprise > > Manager (did I get that right?). However there is a single standard command > > (onstat) to which all monitoring activity has been tied - not to mention the > > SQL interface to this same data. This can be much more effective than > > waiting around for a GUI to load and display data which you then have to > > drill into. I have to admit as an Oracle neophyte that I find the Oracle > > GUI useful for handling tasks without any understanding of what lies beneath > > them. > > > > > >>Many monitoring and diagnostic tools are available for Oracle. Many of > >>them are free. Administration, diagnosis and monitoring is vastly > >>simplified. > >> > >>Raw partitions exacerbate the problem. > >> > > > > > > I'm not sure to which problem you refer. Raw partitions are very simple to > > manage. > > > > > >>Raw partitions and storage management > >> > >>Standard data storage in Informix is via RAW unix partitions. These > >>partitions cannot be monitored via standard Unix utilities. They are > >>more difficult to manage and create - Unix 'root' privileges are > >>required to manage them. Furthermore, raw partitions used by Informix > >>cannot be resized or grown. A completely new partition must be > >>allocated. > >> > > > > > > 'Standard' is either 'cooked files' (OS files) or raw devices. You get a > > 15% performance improvement with raw devices. Oracle has the same feature. > > There is no similar benefit to raw devices under Oracle - I don't remember > > why at present. With a raw device Informix gets to control I/O to the > > device itself instead of going through the Unix file system - which tends to > > not only slow things down, but opens a window of vulnerability - you write > > to disk and commit, the database writes it to disk and thinks it made it, > > but the OS didn't get that far - so your 'committed transaction' wasn't. > > Management of raw spaces is incredibly simple - especially under XPS where > > you can use wildcards to manage hundreds of such spaces at once. > > > > > >>Informix can use cooked partitions, but it is not recommended by > >>Informix for performance reasons. > > > > > > True. > > > > > >>Oracle standard data storage is via datafiles, which are 'normal' unix > >>files. These files can be monitored for growth and utilisation much as > >>any other Uix file. No special system privileges are required to add > >>or resize datafiles. > > > > > > Oh right - I forgot about the resize thing - I've already mentioned the Unix > > filesystem issues. How can you resize a disk? If you buy an 80 GB disk - > > can you make it larger? So I guess you're right, under Informix you can't > > resize a raw disk, however you can add more of them and include them in the > > same dbspace (tablespace) so that the new space is usable by tables which > > need to grow in that space. So in fact you can 'resize' a dbspace. > > > > > >>Fast Loading > >> > >>Our data warehouse employs fast loading capabilities (bypassing ODBC) > >>in order to upload Mainframe EBCDIC data. > > > > > > That is a good thing. We are delighted that Oracle has come to the table > > with a fast (direct path) loader. We hope someday that it shows the same > > sort of performance as is capable with the Informix parallel loader. We > > further hope that some day it will allow you to unload data in the same > > fashion. > > > > > >>This feature is particular in Informix to XPS; in Oracle it is > >>standard functionality. > > > > > > Actually HPL and the light append has been around since 7.x, I first used it > > around 1996. > > > > > >>The reject output from Informix is a single-file mixture of ASCII > >>error report and EBCDIC data. It is impossible to re-upload rejected > >>records from an Informix EBCDIC reject file - All packed decimal, for > >>instance, is corrupt. > > > > > > Actually this is true with XPS. You do get a header to each row indicating > > the error, you have to trim the header to retrieve your original data. > > Interesting - this would be a good feature request if not already done. > > With 7.x and 9.x engines the error is written to a separate file than the > > error message or you have the option of allowing it to load and then picking > > it out of a violation table later. For more on this topic visit > > www.artentech.com/downloads.htm and look for the Informix Load FAQ. > > > > > >>Oracle produces two output files when EBCDIC uploading - an error log, > >>and an EBCDIC reject file - ready for reprocessing. > >> > > > > > > If you have an error, then there is a problem. In a DSS world, you don't > > want to go chasing singleton rows, you want to do the whole thing again. > > > > > >>We currently have to reprocess complete datasets, or reject complete > >>datasets. With Oracle this would not be necessary. > > > > > > This is ok when you are dealing with a small number of rows and can afford > > the luxury of debugging each one. When you are dealing with billions of > > rows and you have a problem, you really don't want to get into the details > > of any individual row. I guess it's a question of how big you intend to > > get. > > > > > >>The administration of the External Table definitions in Informix is > >>excessively onerous also. For instance - 6 sales invoice files for > >>three states necessitates 18 external table definitions and 18 > >>internal table definitions. Addition of EBCDIC datafiles for other > >>states necessarily implies additional external and internal > >>definitions. > > > > > > Not sure what you're saying here. If you have 18 files to load, under XPS > > you can define them all as a single external table. You can define this > > single external table across filename, filesystems, coservers(each instance > > in a cluster) and servers, you can define it with a single file statement > > even (not 18) - it's pretty powerful. Furthermore, this file (or external > > table) is visible to the database - you don't have to go through sqlldr to > > get it into the database, you can treat it as a table and select columns > > from it directly, or join it with other tables - whatever. It's really > > cool. Even cooler - you can unload to it directly with a 'select <columns> > > from <> insert into <>' statement. > > > > > >>With Oracle only 6 internal tables are necessary - generic to the > >>Invoice, they could be used for all states. This vastly simplifies > >>Data Dictionary management. > >> > > > > > > See above. > > > > > >>Limitation comparisons > >> > >>Informix XPS > >>18 characters for database objects > > > > Ok. > > > > > >>256 byte maximum row size in Indexes > > > > You use indices? Are you in a data warehouse environment or an OLTP > > environment? XPS can perform the hash join so quickly that indices are a > > detriment, not a requirement. What you might consider a fast join between > > two tables with indices can be performed 100 times faster with a hash join - > > but then you need some memory to play these sorts of games. Have a look at > > http://www7b.boulder.ibm.com/dmdd/zo...rticle/parker/ > > 0502parker.html for some examples. > > > > > >>255 byte limit on varchar fields > > > > True, although you can go to text and have at least 2GB last time I > > checked. > > > > > >>SQL Restrictions - > >>Cannot SELECT NULL > > > > What? Sure you can. > > > > > >>No general DUAL table > > > > Create one. It's the same thing. I don't generally bother, I 'select > > 'whatever' from systables where tabid=1'; It's the same thing. > > > > > >>No MINUS operations > > > > True, that's a neat Oracle feature. > > > > > >>No GROUP BY or Aggregation in SUBQUERY, NESTED QUERY, COMPOUND QUERY, > > > > > >>EMBEDDED QUERY > > > > Haven't tried this. Never needed it. > > > > > >>No Full OUTER JOIN > > > > Sure there is. Or do you mean that you want all rows from table 'a' and 'b' > > even where neither intersect. Who's been dreaming up your data models? You > > need to clean up your data if this is a requirement. But then I guess > > Informix doesn't do that particular join. > > > > > >>No Implicit ROWID > > > > Not anymore, you can ask for one if you need it. > > > > > >>XPS - No true database flatfile Import Export > > > > Totally untrue. For that matter, has Oracle come up with a true flatfile > > export yet? > > > > > >>Varchar fields not treated as ANSI standard > > > > Well, you can use the ANSI standard if you like, you can also allocate a > > minimum to each varchar which is incredibly useful when it comes time to > > update. Unlike Oracle, which compresses data as much as possible to > > preserve space - and then when you need to update it - oooops won't fit into > > it's original space - have to move it to a new page - which can be time > > consuming - the reservation of space allows the intelligent DBA to > > counteract this sort of thing. > > > > > >>No DISABLE CONSTRAINT commands - Must DROP and RECREATE constraints - > > > > Bullshit. You need to spend more time with the manual. > > > > > >>Additional processing > >>Stored procedures are not prepared - Object dependence not checked > >>until runtime > > > > > > Stored procedures, when compiled are checked against what is available - > > compilation will fail if a required object is not present. What you should > > properly say is that Oracle's PL/SQL is far superior to the Informix stored > > procedure language. Within Oracle you can develop entire applications with > > PL/SQL, the Informix approach to Stored procedures is more basic - to > > perform this or that function - program logic does not truly belong in an > > Informix SPL - more properly in one of it's more standard languages 4GL or > > esql/c. Actually I'm not that crazy about the way Oracle will mark a > > procedure as invalid when something that it depends on changes. This can be > > a real pain to manage. I know what I need to rebuild - I don't need the > > database thinking it knows better than me. > > > > > >>Page size can only be 2 or 4k > > > > > > or 8K. This isn't really an issue, unless you have some reason to need a > > 48K page? You have data rows which are bigger than 8k? Why? Have you > > considered a relational model? Informix will still support big rows, but > > they will span pages. > > > > > >>Oracle > >>30 characters - more meaningful names > > > > If you can't fit it into 18 - why is 30 better? Why don't you bring up 9.4 > > and it's support for object names of 128? IDS is the engine you should be > > comparing to, not XPS. Oracle doesn't have anything to compare to XPS. > > > > > >>Unlimited > > > > (this was the index size - not sure why you want this) > > > > > >>4000 limit > > > > (2GB limit on text) > > > > > >>No comparable restrictions > > > > How about 'order by 1,2,3'? You guys sure do like to type, especially those > > 30 character names. > > You're 'comparable restrictions' refer perhaps to the ANSI standard which is > > a subset of all RDBMS vendors SQL. > > > > > >>Flatfile IMPORT EXPORT available for backups and rebuilds > > > > But not a true flatfile. > > > > > >>No comparable ANSI incompatibility > > > > Moot. > > > > > >>DISABLE ENABLE DEFER VALIDATE NOVALIDATE CONSTRAINT possible > > > > The same basic stuff is available. Since this is not ANSI standard the name > > may vary slightly. > > > > > >>Stored procedures are compiled as PCODE > > > > ??? Informix stored procedures are also compiled into code within the > > engine. Not sure where you are getting this stuff. > > > > > >>Page size can be as large as 64K - 16 times fewer reads for DSS table > >>scans > > > > > > No, actually 8 times more reads. When I want one row, I don't want to pull > > 64K, or 8 times the standard disk buffer - hence 8 disk reads instead of 1. > > > > > >>Warehouse functional comparisons > >> > >>Informix > >>Tables and related indexes are partitioned on the same key - > > > > > > Untrue again. Hybrid fragmentation has been around for some time - > > including back in 8.31. > > > > > >>inflexible configuration > >>GK Indexes - Index prejoin only > > > > > > You need to be pulling out materialized views here - which is the proper > > comparison to the GK index. > > > > > >>Necessary to manage security utilising both OS and database levels > > > > > > Sorry? This is an Oracle issue - you need two layers of security, Informix > > uses the OS security. > > > > > >>Sagent supports ODBC only for Informix > > > > > > Who? > > > > > >>Oracle > >>Partitioning tables and indexes on alternate keys - flexible > >>configuration for performance > > > > Moot. > > > > > >>Materialised Views - Database managed JOINS of tables - Physically > >>existing summary tables for enhanced performance. Time savings in > >>aggregations > > > > > > Yes, but then you have to refresh that summary table. I have no real > > quarrel here, but you're comparing quasi-identical features and claiming > > it's bad there and good here. > > > > > >>Security and permission totally managed within the database > > > > > > Ah, for clients perhaps. Still Informix is relying on their ability to > > connect to the server, not on an additional layer of security within the > > database. > > > > > >>Sagent support for High Speed Loading into Oracle > >> > > > > > > I guess if Sagent is a requirement you should evaluate whether they are Open > > enough for your current and future requirements. > > > > ----- > > > > But then you are comparing volkswagens and ferraris. XPS is a true > > clustered shared nothing environment which can scale literally infinitely - > > ok I am getting away from myself - it can only have 32K coservers and each > > can only support 32 Pedabytes of data - so if you need to go beyond that > > you'd have to pick up the phone and ask the engineers to bump the counter - > > the thing is that with XPS this is not a theoretical limit, performance does > > not drop off as you add more instances (coservers) to the cluster - it > > continues to scale linearly. With Oracle this will only happen on a slide > > projector. There are only two other databases currently available which > > have the architecture to scale in this fashion - DB2 (pdf or whatever it's > > called now) and Teradata. If you want to compare Oracle - you need to be > > comparing to Informix 9. > > > > Yeah sure RAC - give me a break, it's all controlled through a single > > manager. Bottleneck city. > > > > Perhaps obviously you have (had) a need to justify going to Oracle over XPS. > > Perhaps you know Oracle better and are more comfortable with it - fine - > > that's a good enough reason. DBA skills are more generally expensive than > > the database itself. Just don't try to justify it by trying to compare an > > apple with a mango. > > > > As far as features as concerned, you've mentioned quite a few that XPS > > doesn't have, or that you haven't uncovered yet. You might also want to > > look at the XPS 'UPDATE JOIN' and 'DELETE JOIN' statements - talk about > > supporting a warehouse - they rock. There are others, but I digress. > > > > Tell you what. Send me a copy of your schema, some data and some code, and > > I'll put my XPS instance (P4 2.4Ghz, 2xIDE box) up against whatever you > > have. Maybe IBM won't benchmark, but I will. > > > > cheers > > j. > > > > > > > > > > -- > > Atte, > > Jesús Antonio Santos Giraldo > jeansagi@myrealbox.com > jeansagi@netscape.net > > sending to informix-list -- Paul Watson # Oninit Ltd # Growing old is mandatory Tel: +44 1436 672201 # Growing up is optional Fax: +44 1436 678693 # Mob: +44 7818 003457 # www.oninit.com # |
| |||
| you can select null, you just need to give your column a datatype. i.e. select null::integer from sometable; -Brian select case when 1=2 then 1 else null end::integer null_value from table(set{1}) Jean Sagi wrote in message ... > >I read all you post and it was very interesting... > >I have only 2 thing to say and have in count that I don't know anything >about XPS: > >1. In IDS 9.x, you can't select a NULL, you can use it in an UPDATE, >INSERT or DELETE. You can workaround this by creating an sp sp_genull() >who return a null and that do it... but is ugly... >If XPS can do it... it's good, inf fact there are some very cool >features only in the XPS SQL I wish to have in IDS. > >2. In IDS there is no FULL OUTER JOIN... in some cases this is very >usefull. If XPS have it it's good. > >As I said, I wish SQL-IDS has more features of XPS-SQL > >Chucho! > >Jack Parker wrote: >> I must have been offline during this discussion. I ran across it today >> looking for something else. Although late, I will add my .02. (embedded). >> >> The next time one of these come around and I'm not visible - please alert me >> to it? >> >> cheers >> j. >> >> >>>Hi, >>> >>>We are trying to implement what will become a multi-terrabyte data >>>warehouse on Informix XPS but have hit a number of significant >>>problems. We are at the point where we are considering switching >>>database providers to Oracle but want to be sure that the problems we >>>are encountering are indeed valid issues. We have prepared a document >>>of which I have included an extract that details the issues we are >>>having. If anyone can provide me with feedback on these issues to let >>>me know if I'm barking up the wrong tree or if indeed they are issues, >>>it would be greatly appreciated. We are currently running Informix XPS >>>8.3.1 on a 4CPU, 4Gb HP N4000 with HP-UX 11.11. >>> >>> >>>Informix XPS Issues and Comparison to Oracle >>> >>>Performance >>> >>>As detailed on TPC websites >>>http://www.tpc.org/tpch/results/tpch...p?orderby=dbms >>>http://www.tpc.org/information/benchmarks.asp >> >> >> We all know about benchmarks - regardless - TPC-C is not the benchmark you >> would want to use to measure data warehouse performance, you would really >> want TPC-H, (as you mention below) - but even that is flawed in that it >> insists upon ongoing transactions (which are not normal warehouse processes) >> during the benchmark. >> >> >>>Looking at the TPC-H results for a 1000Gb database running on an >>>HP9000 Superdome >>>runs 2.65 times faster than XPS. The pricing of the two databases as >>>reflected in the Price/QphH also shows that Oracle represents 3.5 >>>times more 'bang for the buck' than XPS. >>> >> >> >> Alas these results are long gone, IBM is also not in the business of >> benchmarking XPS, however; having worked with both databases, I can assure >> you that XPS will scale infinitely while Oracle will not. >> >> >>>Issues : >>> >>>Memory Management - CRITICAL >>> >>>XPS has an essential flaw in it's memory management implementation for >>>parallel Decision Support System Queries. The Resource Grant Manager >>>configuration makes it necessary to allocate either large memory >>>segments or small memory segments to all sessions utilising Decision >>>Support Resources (large joins, sorts, ordering etc). >>> >>>It is expected that intention is so that Decision Support System (i.e. >>>Warehouse queries - DSS) queries can preallocate huge memory segments >>>through this configuration. >> >> >> The intent of memory allocation is to pre-allocate resources to intensive >> queries. This is by no means a requirement for XPS, nor is it a bad thing. >> With judicious use this memory can be put to very advantageous use in index >> building, hash joins, groups and sorts - I gather Oracle has a similar >> capability, I have not seen it clearly put to use yet. >> >> >>>When DSS queries are issued the memory is allocated up to the >>>DS_MEMORY_TOTAL. When this occurs, all other DSS queries are queued. >>>It should be noted that the memory allocated is a fixed amount, >>>regardless of the complexity or priority of the query being executed - >>>i.e. Simple counts are allocated the same amount of memory as massive >>>join and sort queries >> >> >> Well, not quite. You can allocate as much memory AS YOU ARE ALLOWED TO - >> which is under the control of the DBA. I realize that with Oracle a 'simple >> count' requires a full table (or index) scan, with Informix it is a single >> read against the table header and virtually instantaneous. You can also use >> a light scan for a filtered read (count(*) ... where condition) - this does >> not chew up memory. Oracle has no equivalent to the light scan - which is >> on average 4x faster than a traditional read. >> >> Yes, you can give a query enough memory so that other queries are gated and >> will not interfere with your process while it runs. This is preferable to >> the thrashing which would occur if this were not an option. >> >> >>>ETL tools parallelise their processing for enhanced performance. Using >>>XPS, it is not uncommon that queries issued in the same program may >>>expend all of the DS_TOTAL_MEMORY and other SQL statements within the >>>same program are queued. This is the cause of the classic Dawa problem >>>- 'the locked plan'. >> >> >> Is it not a wonderful thing when you can fully utilize the power of the >> database and the machine with one query? At the same time you can prevent >> this from occuring. >> >> >>>This situation is exacerbated by the fact that the other statements >>>within the program still retain their memory in Informix - so all SQL >>>statements within the database are 'locked'. >> >> >> Not quite, only those which require DSS resources, so your 'simple count' >> would go straight through. >> >> >>>A resolution to this is to create small memory allocations for each >>>session. Underallocating the memory segment size causes Reports (which >>>do lots or GROUPING and ORDERING) to run extremely slowly, or exceed >>>temp space allocation and fail. >> >> >> Exceeding temp space is a DBA matter - much akin to exceeding the size of a >> rollback segment under Oracle. Either you are properly sized or you are >> not. XPS, and all Informix engines, will use what memory is available to >> the process and swap to disk what is not - this is the same thing that >> Oracle will do. If you don't have enough disk - well you're SOL. >> >> >>>Oracle (or Informix IDS) does not employ the Resource Grant Manager >>>architecture. Small queries use small memory, and large queries use >>>large amounts of memory as required. This means the database slows >>>down, but does not lock on memory. >> >> >> Actually IDS and XPS have the same memory allocation features (PDQPRIORITY), >> although under IDS it's called Memory Grant Manager, but they're the same >> thing. I have never seen XPS 'lock on memory'. >> >> >>>It should be noted that XPS (Extended Parallel Server) refers to >>>parallelism in Platforms - it is evident that for SQL queries that it >>>is NOT optimised for parallelism. >>> >> >> >> What have you been smoking? Where do you get this 'it is evident'? XPS >> performs in parallel with everything, across all horizontal and vertical >> portions of an operation. It exhibits the highest degree of parallelism >> that has ever been offered to the public. >> >> >>>Removing Sessions >>> >>>Informix XPS 8.31 D has an outstanding bug in which it is not possible >>>to remove a Informix client session with assurance. Failed attempts to >>>issue the remove session command have resulted in: >>>· reboot of database instance >>>· reboot of Unix >>>· inability to restart the database instance >> >> >> This is an issue which was corrected in 8.32, which was released 2.5 years >> ago. At your writing XPS was up to version 8.4 >> >> >>>Neither does it appear possible to link an Informix client session to >>>a Unix session id / thread - making it impossible to sessions to be >>>identified and removed at the Operating System level. >> >> >> And this is a good thing. Alas with Oracle (and db2) all user sessions are >> operating systems processes, this means that context switching is removed >> from the control of the database and handed to the operating system which >> really has no clue as to what's going on inside the engine. Believe me, you >> want the threads within the engine and not subject to the OS overhead. You >> can in fact determine which sessions are tied to which clients with a simple >> onstat command. >> >> >>>Oracle, however, runs each session as an easily identifiable Unix >>>process, and sessions can be removed either through DBA commands, or >>>at the Operating System Level. >> >> >> And sometimes this will even remove the locks held by these sessions when >> they are thusly killed. >> >> >>>Exceeding lock count >>> >>>Informix locks database records using memory latches. A maximum number >>>of memory latches is specified in the config file. When this limit is >>>exceeded the database server crashes. >> >> >> Not quite. At the time you wrote this, a counter was incremented to >> indicate that the lock threshold had been exceeded. However in current >> releases Informix has dynamic locks, more locks are allocated as needed. >> >> >>>This is exacerbated when the database restarts and attempt to rollback >>>the transaction that caused the locks to be exceeded - this again >>>exceeds the maximum locks. In our experience, the only solution is to >>>destroy and recreate the database. >> >> >> There indeed were issues with XPS 8.31 where restarting the instance could >> cause issues. Normally, those with support contracts would call the 'Down >> Systems Group' which will answer the phone in under a minute and provide >> sunset support (i.e. 24x7) until your engine is back on line. Those without >> support would call the same group and be gently scolded - and then supported >> in the same fashion. The last time I called Oracle support, I got a call >> back three days later telling me to upgrade. >> >> >>>Oracle does not use memory latches to lock records. It's standard >>>row-level-locking is managed in the rollback segment architecture. >>>Exceeding the rollback segment will not crash the database - it causes >>>the session to rollback the current SQL transaction. >>> >> >> >> Which can be a lot of fun. But this is a moot point. It's a question of >> sizing - if you size your rollback segments improperly - or choose the wrong >> one with which to perform your transaction - you are hosed. The lesson is >> that if you size things properly they work - whether they are Oracle or >> Informix. >> >> >>>Lack of diagnostic/monitoring tools >>> >>>No user friendly or graphical monitoring tools are available. This >>>makes diagnosis and performance monitoring extremely difficult. >>> >> >> >> There is indeed no 'Informix' tool to compare to the Oracle Enterprise >> Manager (did I get that right?). However there is a single standard command >> (onstat) to which all monitoring activity has been tied - not to mention the >> SQL interface to this same data. This can be much more effective than >> waiting around for a GUI to load and display data which you then have to >> drill into. I have to admit as an Oracle neophyte that I find the Oracle >> GUI useful for handling tasks without any understanding of what lies beneath >> them. >> >> >>>Many monitoring and diagnostic tools are available for Oracle. Many of >>>them are free. Administration, diagnosis and monitoring is vastly >>>simplified. >>> >>>Raw partitions exacerbate the problem. >>> >> >> >> I'm not sure to which problem you refer. Raw partitions are very simple to >> manage. >> >> >>>Raw partitions and storage management >>> >>>Standard data storage in Informix is via RAW unix partitions. These >>>partitions cannot be monitored via standard Unix utilities. They are >>>more difficult to manage and create - Unix 'root' privileges are >>>required to manage them. Furthermore, raw partitions used by Informix >>>cannot be resized or grown. A completely new partition must be >>>allocated. >>> >> >> >> 'Standard' is either 'cooked files' (OS files) or raw devices. You get a >> 15% performance improvement with raw devices. Oracle has the same feature. >> There is no similar benefit to raw devices under Oracle - I don't remember >> why at present. With a raw device Informix gets to control I/O to the >> device itself instead of going through the Unix file system - which tends to >> not only slow things down, but opens a window of vulnerability - you write >> to disk and commit, the database writes it to disk and thinks it made it, >> but the OS didn't get that far - so your 'committed transaction' wasn't. >> Management of raw spaces is incredibly simple - especially under XPS where >> you can use wildcards to manage hundreds of such spaces at once. >> >> >>>Informix can use cooked partitions, but it is not recommended by >>>Informix for performane reasons. >> >> >> True. >> >> >>>Oracle standard data storage is via datafiles, which are 'normal' unix >>>files. These files can be monitored for growth and utilisation much as >>>any other Unix file. No special system privileges are required to add >>>or resize datafiles. >> >> >> Oh right - I forgot about the resize thing - I've already mentioned the Unix >> filesystem issues. How can you resize a disk? If you buy an 80 GB disk - >> can you make it larger? So I guess you're right, under Informix you can't >> resize a raw disk, however you can add more of them and include them in the >> same dbspace (tablespace) so that the new space is usable by tables which >> need to grow in that space. So in fact you can 'resize' a dbspace. >> >> >>>Fast Loading >>> >>>Our data warehouse employs fast loading capabilities (bypassing ODBC) >>>in order to upload Mainframe EBCDIC data. >> >> >> That is a good thing. We are delighted that Oracle has come to the table >> with a fast (direct path) loader. We hope someday that it shows the same >> sort of performance as is capable with the Informix parallel loader. We >> further hope that some day it will allow you to unload data in the same >> fashion. >> >> >>>This feature is particular in Informix to XPS; in Oracle it is >>>standard functionality. >> >> >> Actually HPL and the light append has been around since 7.x, I first used it >> around 1996. >> >> >>>The reject output from Informix is a single-file mixture of ASCII >>>error report and EBCDIC data. It is impossible to re-upload rejected >>>records from an Informix EBCDIC reject file - All packed decimal, for >>>instance, is corrupt. >> >> >> Actually this is true with XPS. You do get a header to each row indicating >> the error, you have to trim the header to retrieve your original data. >> Interesting - this would be a good feature request if not already done. >> With 7.x and 9.x engines the error is written to a separate file than the >> error message or you have the option of allowing it to load and then picking >> it out of a violation table later. For more on this topic visit >> www.artentech.com/downloads.htm and look for the Informix Load FAQ. >> >> >>>Oracle produces two output files when EBCDIC uploading - an error log, >>>and an EBCDIC reject file - ready for reprocessing. >>> >> >> >> If you have an error, then there is a problem. In a DSS world, you don't >> want to go chasing singleton rows, you want to do the whole thing again. >> >> >>>We currently have to reprocess complete datasets, or reject complete >>>datasets. With Oracle this would not be necessary. >> >> >> This is ok when you are dealing with a small number of rows and can afford >> the luxury of debugging each one. When you are dealing with billions of >> rows and you have a problem, you really don't want to get into the details >> of any individual row. I guess it's a question of how big you intend to >> get. >> >> >>>The administration of the External Table definitions in Informix is >>>excessively onerous also. For instance - 6 sales invoice files for >>>three states necessitates 18 external table definitions and 18 >>>internal table definitions. Addition of EBCDIC datafiles for other >>>states necessarily implies additional external and internal >>>definitions. >> >> >> Not sure what you're saying here. If you have 18 files to load, under XPS >> you can define them all as a single external table. You can define this >> single external table across filename, filesystems, coservers(each instance >> in a cluster) and servers, you can define it with a single file statement >> even (not 18) - it's pretty powerful. Furthermore, this file (or external >> table) is visible to the database - you don't have to go through sqlldr to >> get it into the database, you can treat it as a table and select columns >> from it directly, or join it with other tables - whatever. It's really >> cool. Even cooler - you can unload to it directly with a 'select <columns> >> from <> insert into <>' statement. >> >> >>>With Oracle only 6 internal tables are necessary - generic to the >>>Invoice, they could be used for all states. This vastly simplifies >>>Data Dictionary management. >>> >> >> >> See above. >> >> >>>Limitation comparisons >>> >>>Informix XPS >>>18 characters for database objects >> >> Ok. >> >> >>>256 byte maximum row size in Indexes >> >> You use indices? Are you in a data warehouse environment or an OLTP >> environment? XPS can perform the hash join so quickly that indices are a >> detriment, not a requirement. What you might consider a fast join between >> two tables with indices can be performed 100 times faster with a hash join - >> but then you need some memory to play these sorts of games. Have a look at >> http://www7b.boulder.ibm.com/dmdd/zo...rticle/parker/ >> 0502parker.html for some examples. >> >> >>>255 byte limit on varchar fields >> >> True, although you can go to text and have at least 2GB last time I >> checked. >> >> >>>SQL Restrictions - >>>Cannot SELECT NULL >> >> What? Sure you can. >> >> >>>No general DUAL table >> >> Create one. It's the same thing. I don't generally bother, I 'select >> 'whatever' from systables where tabid=1'; It's the same thing. >> >> >>>No MINUS operations >> >> True, that's a neat Oracle feature. >> >> >>>No GROUP BY or Aggregation in SUBQUERY, NESTED QUERY, COMPOUND QUERY, >> >> >>>EMBEDDED QUERY >> >> Haven't tried this. Never needed it. >> >> >>>No Full OUTER JOIN >> >> Sure there is. Or do you mean that you want all rows from table 'a' and 'b' >> even where neither intersect. Who's been dreaming up your data models? You >> need to clean up your data if this is a requirement. But then I guess >> Informix doesn't do that particular join. >> >> >>>No Implicit ROWID >> >> Not anymore, you can ask for one if you need it. >> >> >>>XPS - No true database flatfile Import Export >> > |