I went to a conference yesterday and in some of the presentations picked up a few features that will be coming with the 9i database. It's not a complete list of course, but here are a few things that we found out
- database block size is now set at the tablespace level instead of for the entire database. so transportable tablespaces can pretty much be sent anywhere.
- allows setting a parameter for the maximum size of the SGA, larger than your typical setup based on shared pool, etc. this way if you need to make your sga larger for a short ammount of time, you can resize it without bouncing the database up to the max size you specify.
- can analyze and skip past missing/corrupt logs in a recovery instead of having to stop once you hit a missing log.
- synchronous/asynchronous log shipping, so archived logs can automatically be sent and applied to the standby DB. they can be sent immediatly, or you can specify a lag time so if someone says "i deleted table x", you can have time before that error corrupts the standby database. nothing you really couldn't do with scripts before, but now oracle can do it automatically.
- up to 9 standby sites instead of the 3(?) which can be used now
- graceful switching to standby. this is what the bullet on the slide says, I don't recall exactly what was mentioned about it but i would guess easier than it is now.
- standby can be online. if you have a standby database, it can now be online instead of standby mode. this means that assuming people doing reports can deal with slightly older data (an archive log or so old) the standby database can be used for reporting and not make the core DB do the work.
- you can back out of a recovery if it fails or something goes wrong, instead of having to restore your backup again.
- tables can be online during a recovery
- you can take a 'flash freeze' of your database a the point of failure and send that snapshot to oracle so they can reproduce the problem easier (of course that's only if you want to send them your data)
- something called a flashback query which uses an undo tablespace. if someone truncates a table, or deletes the wrong rows, you can just query the information back from the undo tablespace instead of going into a recovery. (you can manage the undo tablespace yourself or automatically, however if automatic it requires 2 TB(!) of space, so odds are you'll do it manually)
- CBO enhancements. can take things into account like machine memory, network latency, and a lot of other new parameters.
- composite indexes won't always be checked against the leading column.
- native pl/sql compiling (directly to machine code instead of C)
- pl/sql now uses sql engine instead of a seperate pl/sql engine.
- multi table inserts with pl/sql
- some new olap functions
- bitmap join indexes added
- long to LOB conversion so you don't have to use a custom proc
- and for everyone who's asked how to write a procedure to insert if a row doesn't exist, and update the row if it does exist, there will now be an UPSERT command which does it for you.
There were a few others that were mentioned, and that's not a complete list or anything but I thought you guys might find them interesting to look through.
[QUOTE][i]Originally posted by pwoneill [/i]
[B]- database block size is now set at the tablespace level instead of for the entire database. so transportable tablespaces can pretty much be sent anywhere.
How cool is that? This is going to be awesome for OLTP systems. You could have your primary tables in a 4K block size and your "history" tables in a 16K block size.You also won't have to worry about an entire db export/import to resize your blocks.
It will make the some of the init.ora parameters interesting to configure, though. I wonder how db_block_buffers will be configured?