dbTalk Databases Forums  

IDS on a Mac?

comp.databases.informix comp.databases.informix


Discuss IDS on a Mac? in the comp.databases.informix forum.



Reply
 
Thread Tools Search this Thread Display Modes
  #41  
Old   
Serge Rielau
 
Posts: n/a

Default Re: IDS on a Mac? - 10-29-2007 , 12:33 AM






DA Morgan wrote:
Quote:
You and Mark seem to have a bit of a disagreement with respect to the
proper implementation. No doubt that will be resolved with new
"compatibility" features.
There it is again "proper implementation".
What is a proper vehicle? A plane or a submarine?

FWIW, Mark and I agree.

Count to 10, ok?
Serge
--
Serge Rielau
DB2 Solutions Development
IBM Toronto Lab


Reply With Quote
  #42  
Old   
Ian Michael Gumby
 
Posts: n/a

Default Re: IDS on a Mac? - 10-29-2007 , 09:41 AM









Quote:
From: Mark Townsend <markbtownsend (AT) sbcglobal (DOT) net

There has always been some discussion about which approach is more
"correct". Obviously we at Oracle think this approach is better, for a
number of really good reasons. We could also do temp tables the same way
as informix and SQL Server, but have chosen to not implement them yet,
also for a number of good reasons. It does make migration from these
databases to Oracle a little problematic however

Now why would anyone want to go and do that? It would be akin to trading in
a perfectly good Porche 911 Turbo on a Toyota toy car.

Seriously.

Under Oracle the temp table isn't temporary. As an object, the definition of
the temp table is persistant thus forcing each "user" er schema on the
instance, to reserve that name for a specific meaning.

And it means that unless you index your column up front, any schema which is
currently using the table, will prohibit you from adding an index to the
temp table. Not a good idea an not a good design.

The dynamic ability to create a temp table on the fly is a very good idea
and its kind of implied by the name temp and the std sql syntax.

Is this to say that Oracle is "wrong" and IDS is "right". Hardly. Its a
design philosophy and you can see that Oracle carries a lot of baggage with
its design.

This isn't to say that IDS is perfect, but its design and flexibility lends
itself to easier adoption of advancements in technology than either DB2 and
Oracle. But lets also be real. Both DB2 and Oracle trace their roots to the
mainframe. Different beast.

As a developer who supports multiple databases, I can appreciate the best
and hate the worst of all of them. On the issue of temp tables and how
Oracle defines a "user", Oracle blows and there isn't any thing that they
can do to fix that in the short term.

I will say one thing... Oracle has definitely done a good job of
brainwashing their dbas.

__________________________________________________ _______________
Capture the missing critters!** Play Search Queries and earn great prizes.
http://club.live.com/search_queries....ltextlink1_oct



Reply With Quote
  #43  
Old   
DA Morgan
 
Posts: n/a

Default Re: IDS on a Mac? - 10-29-2007 , 11:24 AM



Obnoxio The Clown wrote:
Quote:
DA Morgan said:
BTW: Obnoxio ... likely be in B'ham first week of December.

You are a much, MUCH braver man than I.
Scotch helps.
--
Daniel A. Morgan
University of Washington
damorgan@x.washington.edu (replace x with u to respond)
Puget Sound Oracle Users Group
www.psoug.org


Reply With Quote
  #44  
Old   
Ian Michael Gumby
 
Posts: n/a

Default Re: IDS on a Mac? - 10-29-2007 , 01:18 PM






Quote:
From: DA Morgan <damorgan (AT) psoug (DOT) org


Obnoxio The Clown wrote:
DA Morgan said:
BTW: Obnoxio ... likely be in B'ham first week of December.

You are a much, MUCH braver man than I.

Scotch helps.
--
Daniel A. Morgan
I can't believe that OTC is afraid of a place like B'ham.
After all, it can't be worse than Jo Berg....

__________________________________________________ _______________
More photos; more messages; more storage—get 5GB with Windows Live Hotmail.
http://imagine-windowslive.com/hotma...M_mini_2G_0507



Reply With Quote
  #45  
Old   
Obnoxio The Clown
 
Posts: n/a

Default Re: IDS on a Mac? - 10-29-2007 , 01:39 PM




Ian Michael Gumby said:
Quote:
From: DA Morgan <damorgan (AT) psoug (DOT) org

Obnoxio The Clown wrote:
DA Morgan said:
BTW: Obnoxio ... likely be in B'ham first week of December.

You are a much, MUCH braver man than I.

Scotch helps.
--
Daniel A. Morgan

I can't believe that OTC is afraid of a place like B'ham.
After all, it can't be worse than Jo Berg....
I've never been the same since I went to Alderley Edge ... (

--
Bye now,
Obnoxio

"I'm astonished anyone pays real money for this crap."
-- Cosmo

"Cluster in my trousers"
-- Guy Bowerman

--
This message has been scanned for viruses and
dangerous content by OpenProtect(http://www.openprotect.com), and is
believed to be clean.



Reply With Quote
  #46  
Old   
John Carlson
 
Posts: n/a

Default Re: IDS on a Mac? - 11-02-2007 , 09:37 PM



Serge Rielau wrote:
Quote:
Ian Michael Gumby wrote:
From: Serge Rielau <srielau (AT) ca (DOT) ibm.com> > The OP's statement most
likely stems from not understanding the
differences between the two products.
I don't think so....
Here is my take:
The advantage of session-local temporary tables, that is tables who's
definition is not persisted in the catalog has the advantage that ad-hoc
tables can be created quickly without impacting the catalog and without
a care whether some other session may have a table with the same name
(but a different signature)
The downside of this behavior is that it's somewhat challenging to use
these kinds of tables across multiple objects because there is no
guarantee that the procedure that is trying to use Temp1 actually gets
Temp1 in the shape it expects it to be.

You're going to have to be a bit more specific in how you define
"object". "Object" has different meanings to different people....

The disadvantage that you state is kind of meaningless in practice. If
you think about it, the temp table is only persistant during a
connection. So that the calling app that instantiated the connection
should know how or what is defined by the temp table. And the name
temp1 has to be unique per connection. (Meaning that connection A can
create a temp1 table and connection B can create a temp table temp1
but they will be different objects...)

The huge problem with Oracle's temp tables is that their definition
isnt temp, its global. What is temporary is the data that you can
maintain in the temp will last only as long as the session. So what
happens if I want to load in 300,000 rows of temp data in to the temp
table and there's no index on the table? (Hint: SEQUENTIAL SCAN OF THE
TABLE). In Oracle, you can't create an index on a temp table if there
are any rows in it, and you can't control who/what someone else does
to the temp table.
Interesting. I didn't know Oracle had this funny limitation.
Either way that limitation is not core to the "concept" of a CREATEd
temporary table.

Speaking about limitations / differences...

Are inserts / deletes / updates on Oracle temp tables still logged? I
remember "older versions" and I believe this was so, but I'm not sure as
to whether it was or still is . . . .

JWC


Reply With Quote
  #47  
Old   
DA Morgan
 
Posts: n/a

Default Re: IDS on a Mac? - 11-02-2007 , 09:50 PM



John Carlson wrote:
Quote:
Serge Rielau wrote:
Ian Michael Gumby wrote:
From: Serge Rielau <srielau (AT) ca (DOT) ibm.com> > The OP's statement most
likely stems from not understanding the
differences between the two products.
I don't think so....
Here is my take:
The advantage of session-local temporary tables, that is tables who's
definition is not persisted in the catalog has the advantage that
ad-hoc
tables can be created quickly without impacting the catalog and without
a care whether some other session may have a table with the same name
(but a different signature)
The downside of this behavior is that it's somewhat challenging to use
these kinds of tables across multiple objects because there is no
guarantee that the procedure that is trying to use Temp1 actually gets
Temp1 in the shape it expects it to be.

You're going to have to be a bit more specific in how you define
"object". "Object" has different meanings to different people....

The disadvantage that you state is kind of meaningless in practice.
If you think about it, the temp table is only persistant during a
connection. So that the calling app that instantiated the connection
should know how or what is defined by the temp table. And the name
temp1 has to be unique per connection. (Meaning that connection A can
create a temp1 table and connection B can create a temp table temp1
but they will be different objects...)

The huge problem with Oracle's temp tables is that their definition
isnt temp, its global. What is temporary is the data that you can
maintain in the temp will last only as long as the session. So what
happens if I want to load in 300,000 rows of temp data in to the temp
table and there's no index on the table? (Hint: SEQUENTIAL SCAN OF
THE TABLE). In Oracle, you can't create an index on a temp table if
there are any rows in it, and you can't control who/what someone else
does to the temp table.
Interesting. I didn't know Oracle had this funny limitation.
Either way that limitation is not core to the "concept" of a CREATEd
temporary table.


Speaking about limitations / differences...

Are inserts / deletes / updates on Oracle temp tables still logged? I
remember "older versions" and I believe this was so, but I'm not sure as
to whether it was or still is . . . .

JWC
Global temporary tables have several major benefits:

1. Non-interference between private sets of data.

2. Ease of getting rid of 'scratch' data. In a heap table you either
rollback, or delete it. But in a GTT, you can truncate explicitly,
without affecting anyone else (or allow the implicit "truncate on commit
/ exit" effect to do the same thing).

3. Decreased redo generation as, by definition, they are non-logging.

No decreased ... not zero.

create table reg_tab (
testcol VARCHAR2(100));

CREATE GLOBAL TEMPORARY TABLE gtt_ocd (
testcol VARCHAR2(100))
ON COMMIT DELETE ROWS;

CREATE GLOBAL TEMPORARY TABLE gtt_ocp (
testcol VARCHAR2(100))
ON COMMIT PRESERVE ROWS;

col value format 999999999999

-- get baseline redo value
SELECT value
FROM sys.v_$sysstat
WHERE name = 'redo size';

-- load 1000 rows into a heap table
BEGIN
FOR i IN 1 .. 1000 LOOP
INSERT INTO reg_tab
(testcol)
VALUES
(RPAD('X', 99));
END LOOP;
COMMIT;
END;
/

-- record the redo generated
SELECT value
FROM sys.v_$sysstat
WHERE name = 'redo size';

-- load 1000 rows into a GTT with ON COMMIT DELETE ROWS
BEGIN
FOR i IN 1 .. 1000 LOOP
INSERT INTO gtt_ocd
(testcol)
VALUES
(RPAD('X', 99));
END LOOP;
COMMIT;
END;
/

-- record the redo generated
SELECT value
FROM sys.v_$sysstat
WHERE name = 'redo size';

-- load 1000 rows into a GTT with ON COMMIT PRESERVE ROWS
BEGIN
FOR i IN 1 .. 1000 LOOP
INSERT INTO gtt_ocp
(testcol)
VALUES
(RPAD('X', 99));
END LOOP;
COMMIT;
END;
/

-- record the redo generated
SELECT value
FROM sys.v_$sysstat
WHERE name = 'redo size';

Description Value Redo Generated
Baseline 254269080 -
Regular Table Run 254605916 336836
On Commit Delete 254742528 136612
On Commit Preserve 254879140 136612

Be sure this is part of the compatibility feature set. <g>
--
Daniel A. Morgan
University of Washington
damorgan@x.washington.edu (replace x with u to respond)
Puget Sound Oracle Users Group
www.psoug.org


Reply With Quote
  #48  
Old   
Ian Michael Gumby
 
Posts: n/a

Default Re: IDS on a Mac? - 11-05-2007 , 10:07 AM






Quote:
From: DA Morgan <damorgan (AT) psoug (DOT) org
[SNIP]

Sigh.

This is a design issue that shows that while there are general concepts
which are the same across different platforms, there some subtle differences
which will impact performance.

The implementation of Temp tables in Oracle is wrong. Ugly, inefficient and
barely supports the idea of the "INTO TEMP" clause that I believe is part of
the SQL standard.

Now when I say "WRONG", I'm talking from a purely design perspective. (In
truth there is no right or wrong, its a question about how to interpret the
requirements and does the solution meet the stated goals. )

However, as a developer if I want to KISS (that's an engineering term), I
want to have my temp tables defined dynamically and be unique in that I
don't incur overhead or issues from other implementations.

The example I've used is that you can not create an index on a temp table if
the table has data anywhere. That is even if I trunc my data, a different
user could still have data in the temp table. So I can't create an index.
While this may seem like a small nit, its not. When you're doing some
computations on a subset, or need to create a functional index on the
subset. So creating and dropping indexes on subsets is not possible.

An example? Suppose I have a field where the value is a bitmask and I only
want to select a certain portion for processing. I can't easily do this with
Oracle's temp tables. Hence the issue.

The "right" solution allows the developer a lot of freedom and still
conforms to the spec. Hence the preference for IDS.

On a completely different topic, is the extensibility issue. (Don't get me
started on Oracle's "extensibility....". And to keep this issue simple, lets
talk about Sybase's adaptive server.

Its extensible, however, they didn't fence in the user/developer's code so
that if there is ineffcient code, it will kill the performance of the entire
database. Note that even if the code looks clean, it can still be
inefficient.

Again kudos to IDS's developers who thought things out before
implementations. ER/HDR anyone?

That is the point. Its a better designed system.

And DA, you keep citing statistics about open rec's for FTEs.

Here's an example I think you might be able to grasp.

Porsche doesn't have a "green" car in its line up. The company defended
itself by saying that if you took all the Porsche vehicles off the road,
you'd have a less than 1% impact on CO2 emmissions from automobiles.

So when you ask a customer, that for the same price, would you rather be
driving an econobox or a Porsche, what do you think they'll say? ;-)

__________________________________________________ _______________
You keep typing, we keep giving. Download Messenger and join the i’m
Initiative now. http://im.live.com/messenger/im/home/?source=TAGHM



Reply With Quote
  #49  
Old   
DA Morgan
 
Posts: n/a

Default Re: IDS on a Mac? - 11-05-2007 , 12:00 PM



Ian Michael Gumby wrote:
Quote:


From: DA Morgan <damorgan (AT) psoug (DOT) org
[SNIP]

Sigh.

This is a design issue that shows that while there are general concepts
which are the same across different platforms, there some subtle
differences which will impact performance.

The implementation of Temp tables in Oracle is wrong. Ugly, inefficient
and barely supports the idea of the "INTO TEMP" clause that I believe is
part of the SQL standard.
This is the most preposterous statement I've heard in quite awhile not
because, quite simply, there is no basis in fact. Allow me to prove it.

1. On what version of Oracle did you test Oracle's temp tables?
2. Which temp table types did you test?
3. With what tool did you gather the metrics?
4. Post the test design, the DDL, the DML, and the results.

Your statement has as much basis in fact as saying swordfish is better
than salmon.

You think what Informix does, is better. Put up the test case.

Quote:
Now when I say "WRONG", I'm talking from a purely design perspective.
And purely from the perspective of someone who doesn't work with undo
segments and undo tablespaces and doesn't understand the architecture
underlying MVRC and has no actual basis for the opinion other than that
he likes blue more than red.

Quote:
(In truth there is no right or wrong, its a question about how to
interpret the requirements and does the solution meet the stated goals. )
Closer to the facts but a waffle given the above rant.

Quote:
However, as a developer if I want to KISS (that's an engineering term),
I want to have my temp tables defined dynamically and be unique in that
I don't incur overhead or issues from other implementations.
Which means you don't want to write code the creates and drops them
on-the-fly. Far better to create them, index them, constrain them, and
let them take care of themselves forever. But that would conflict with
your overriding prejudice against anything non-Informix.

Quote:
The example I've used is that you can not create an index on a temp
table if the table has data anywhere.
Of course not. Buiding indexes on-the-fly in a production database is
not just silly it is counterproductive adding unnecessary overhead.

If you design systems rather than just throw them over the cubicle wall
then you design your table, you design your indexes, you build them
during schema creation, and you leave them alone for all to use and for
the life of the application.

Complaining that an implementation doesn't let you create objects that
the optimizer might want to know about any time you feel like it is
the very core of bad practice.

Quote:
That is even if I trunc my data, a
different user could still have data in the temp table. So I can't
create an index. While this may seem like a small nit, its not. When
you're doing some computations on a subset, or need to create a
functional index on the subset. So creating and dropping indexes on
subsets is not possible.
Nor should it be. Do you think creating and dropping objects has no
cost?

Quote:
An example? Suppose I have a field where the value is a bitmask and I
only want to select a certain portion for processing. I can't easily do
this with Oracle's temp tables. Hence the issue.
Sure you can. Of course provided you know how. If you have a problem
why don't you tell us about it in the Oracle usenet group and we will
help you solve it.

Quote:
The "right" solution allows the developer a lot of freedom and still
conforms to the spec. Hence the preference for IDS.
So far you've not given a single example of this but I doubt that will
stop you ... you're on a roll.

Quote:
On a completely different topic, is the extensibility issue. (Don't get
me started on Oracle's "extensibility....". And to keep this issue
simple, lets talk about Sybase's adaptive server.
Why not other than, it would seem, the fact that you know nothing about
it with respect to any currently supported version of the product.

Quote:
Its extensible, however, they didn't fence in the user/developer's code
so that if there is ineffcient code, it will kill the performance of the
entire database. Note that even if the code looks clean, it can still be
inefficient.
Explaining, it would seem, why it is that Sybase is currently outselling
Informix by a wide margin. And why Sybase shops are looking for
employees for real-work while Informix shops are not:

dice.com monster.com hotjobs.com
Sybase 2,146 304 548
Informix 343 43 173

jobs available as of 5 November, 2007.

You are presiding over a funeral so it is understandable that you would
praise the departed.

Quote:
Again kudos to IDS's developers who thought things out before
implementations. ER/HDR anyone?
And curses to Informix and IBM management: antipathy in action.

Quote:
That is the point. Its a better designed system.
Just like WordStar, just like Lotus 123, just like Borland Pascal.

Quote:
And DA, you keep citing statistics about open rec's for FTEs.
Amazing how some people actually think getting paid for what they do
has value: Go figure.

Quote:
Here's an example I think you might be able to grasp.
Why? Do you think your readers too stupid too see a lack of jobs as
relevant?

Quote:
Porsche doesn't have a "green" car in its line up. The company defended
itself by saying that if you took all the Porsche vehicles off the road,
you'd have a less than 1% impact on CO2 emmissions from automobiles.
And this somehow trumps the fact that not a single college or university
on the planet offers a single class for Informix. The next generation of
developers and DBAs is coming from where? Apparently the same place new
sales are coming from? The tooth fairy.
--
Daniel A. Morgan
University of Washington
damorgan@x.washington.edu (replace x with u to respond)
Puget Sound Oracle Users Group
www.psoug.org


Reply With Quote
  #50  
Old   
John Carlson
 
Posts: n/a

Default Re: IDS on a Mac? - 11-05-2007 , 08:42 PM



DA Morgan wrote:
Quote:
Ian Michael Gumby wrote:



From: DA Morgan <damorgan (AT) psoug (DOT) org
[SNIP]

Sigh.

This is a design issue that shows that while there are general
concepts which are the same across different platforms, there some
subtle differences which will impact performance.

The implementation of Temp tables in Oracle is wrong. Ugly,
inefficient and barely supports the idea of the "INTO TEMP" clause
that I believe is part of the SQL standard.

This is the most preposterous statement I've heard in quite awhile not
because, quite simply, there is no basis in fact. Allow me to prove it.

1. On what version of Oracle did you test Oracle's temp tables?
2. Which temp table types did you test?
3. With what tool did you gather the metrics?
4. Post the test design, the DDL, the DML, and the results.

Your statement has as much basis in fact as saying swordfish is better
than salmon.

You think what Informix does, is better. Put up the test case.

Now when I say "WRONG", I'm talking from a purely design perspective.

And purely from the perspective of someone who doesn't work with undo
segments and undo tablespaces and doesn't understand the architecture
underlying MVRC and has no actual basis for the opinion other than that
he likes blue more than red.

(In truth there is no right or wrong, its a question about how to
interpret the requirements and does the solution meet the stated goals. )

Closer to the facts but a waffle given the above rant.

However, as a developer if I want to KISS (that's an engineering
term), I want to have my temp tables defined dynamically and be unique
in that I don't incur overhead or issues from other implementations.

Which means you don't want to write code the creates and drops them
on-the-fly. Far better to create them, index them, constrain them, and
let them take care of themselves forever. But that would conflict with
your overriding prejudice against anything non-Informix.

The example I've used is that you can not create an index on a temp
table if the table has data anywhere.

Of course not. Buiding indexes on-the-fly in a production database is
not just silly it is counterproductive adding unnecessary overhead.

If you design systems rather than just throw them over the cubicle wall
then you design your table, you design your indexes, you build them
during schema creation, and you leave them alone for all to use and for
the life of the application.

Complaining that an implementation doesn't let you create objects that
the optimizer might want to know about any time you feel like it is
the very core of bad practice.

That is even if I trunc my data, a different user could still have
data in the temp table. So I can't create an index. While this may
seem like a small nit, its not. When you're doing some computations on
a subset, or need to create a functional index on the subset. So
creating and dropping indexes on subsets is not possible.

Nor should it be. Do you think creating and dropping objects has no
cost?

An example? Suppose I have a field where the value is a bitmask and I
only want to select a certain portion for processing. I can't easily
do this with Oracle's temp tables. Hence the issue.

Sure you can. Of course provided you know how. If you have a problem
why don't you tell us about it in the Oracle usenet group and we will
help you solve it.

The "right" solution allows the developer a lot of freedom and still
conforms to the spec. Hence the preference for IDS.

So far you've not given a single example of this but I doubt that will
stop you ... you're on a roll.

On a completely different topic, is the extensibility issue. (Don't
get me started on Oracle's "extensibility....". And to keep this issue
simple, lets talk about Sybase's adaptive server.

Why not other than, it would seem, the fact that you know nothing about
it with respect to any currently supported version of the product.

Its extensible, however, they didn't fence in the user/developer's
code so that if there is ineffcient code, it will kill the performance
of the entire database. Note that even if the code looks clean, it can
still be inefficient.

Explaining, it would seem, why it is that Sybase is currently outselling
Informix by a wide margin. And why Sybase shops are looking for
employees for real-work while Informix shops are not:

dice.com monster.com hotjobs.com
Sybase 2,146 304 548
Informix 343 43 173

jobs available as of 5 November, 2007.
Back on that soapbox, Daniel? I was kinda wondering how long it would
take . . . .

Some more noteworthy quotes . . .

Quote:
You are presiding over a funeral so it is understandable that you would
praise the departed.


Just like WordStar, just like Lotus 123, just like Borland Pascal.


And this somehow trumps the fact that not a single college or university
on the planet offers a single class for Informix. The next generation of
developers and DBAs is coming from where? Apparently the same place new
sales are coming from? The tooth fairy.
More value-added blather for c.d.i.

JWC


Reply With Quote
Reply




Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.