TOAD



  • TOAD is a great piece of software, if you listen to my coworkers.  Basically, I use it as a backup to SQL Developer, because I know SQL Developer well, though it does have its WTFs.  I won't get into the WTFs of SQL Developer, unless you want me to.  That discussion would belong in the Oracle forum.

    TOAD, however, has one big glaring WTF.  You can't, by default, cancel a query.  You have to enable an option to get TOAD to run queries in threads, at which point, you can cancel queries.  If you don't have that option enabled, TOAD just locks up and you have to shut it down with Task Manager.  

    Which brings me to another WTF.  I could not bring up another instance of TOAD while waiting for one query to finish.  What the hell is so complicated about TOAD that you can't have multiple instances?

    While typing this, I'm recalling another WTF of TOAD.  When our database servers got shuffled around, my coworkers had to change their tnsnames files.  I (using SQL Developer) did not.  Why would TOAD use the local install of Oracle to connect?  What's so hard about making it its own client?



  •  I can empathize. I've used both and SQL developer is far better, yet everybody uses Toad anyway. They must give out free Toad licenses at Bangalore University.

     However, both programs beat the pants off of Sql+. I shudder when I consider that at some point in time, people used Sql+ to do their jobs... I woulda killed somebody.



  • @savar said:

     I can empathize. I've used both and SQL developer is far better, yet everybody uses Toad anyway. They must give out free Toad licenses at Bangalore University.

     However, both programs beat the pants off of Sql+. I shudder when I consider that at some point in time, people used Sql+ to do their jobs... I woulda killed somebody.

     

     Agree on both points. What's amazing about SQL+ is that was the default toolset for so long. Freaking command line interface is better that that thing since the command line didn't have that depressing shade of olive green.



  • @belgariontheking said:

    You can't, by default, cancel a query.  You have to enable an option to get TOAD to run queries in threads, at which point, you can cancel queries.  If you don't have that option enabled, TOAD just locks up and you have to shut it down with Task Manager.

    I don't know which version you are using (the license codes seem to work with every version), but current versions have a nice [Cancel] button. Not using threads causes less load on the DB server and the queries are starting faster, IIRC. It is documented why this is default. If the DB session is blocked, you can't do much with the program anyway and there is no reason not to hang.

    If you have the needed GRANTs, you can open a second TOAD and use the Session manager to kill the DB session with your query (you can also use a command line client, this way you don't need the session listing ability, you only have to find out the session id somehow). Of course long running statements cause an equally long rollback if you do that and place further load on the server, sometimes you just have to wait through that before doing more queries. You should have thought about what you were doing before anyway, just don't run excessive queries...

    @belgariontheking said:

    I could not bring up another instance of TOAD while waiting for one query to finish.

    I can, you can simply start the program again. Of course the default is the stupid windows standard behaviour to just raise the running window if the program already runs, but that can be changed. Strangely sometimes one of the windows can't be minimized any more and you have to move the window out of the desktop to hide it.

    @belgariontheking said:

    When our database servers got shuffled around, my coworkers had to change their tnsnames files.  I (using SQL Developer) did not.  Why would TOAD use the local install of Oracle to connect?  What's so hard about making it its own client?

    Shouldn't Oracle fix their client instead, making more users happy? Also I didn't know it was supported by Oracle to make someone's own client, is the protocol documented and stable enough? Many programs just ship Oracle's oci.dll in their installer, but that gives you the full strengths and weaknesses that come with it.



  • @strcmp said:

    If the DB session is blocked, you can't do much with the program anyway and there is no reason not to hang.
    I should be able use an existing connection to another database, shoudn't I?  SQL Developer can do it.  Why can't TOAD?  Note that (my version of) TOAD costs money while SQL Developer does not.

    @strcmp said:

    You should have thought about what you were doing before anyway, just don't run excessive queries...
    That's not very fault tolerant.  I had no sooner clicked "Execute" than I realized that the ORDER BY statement would cause it to sort 200 thousand rows with three cascading sorts.  Without the ORDER BY, the query returns immediately.  Shouldn't I be able to cancel it so I can comment the ORDER BY and get the data right back?

    @strcmp said:

    @belgariontheking said:
    I could not bring up another instance of TOAD while waiting for one query to finish.

    I can, you can simply start the program again.

    Of course I can start the program again, but first I have to forcefully shutdown the old one.  Why should I have to do that?

    @strcmp said:

    @belgariontheking said:
    When our database servers got shuffled around, my coworkers had to change their tnsnames files.  I (using SQL Developer) did not.  Why would TOAD use the local install of Oracle to connect?  What's so hard about making it its own client?

    Shouldn't Oracle fix their client instead, making more users happy? Also I didn't know it was supported by Oracle to make someone's own client, is the protocol documented and stable enough? Many programs just ship Oracle's oci.dll in their installer, but that gives you the full strengths and weaknesses that come with it.

    I don't know what point you're trying to make here.  It wasn't Oracle's fault that they had to change their tnsnames.



  • @belgariontheking said:

    @strcmp said:

    You should have thought about what you were doing before anyway, just don't run excessive queries...
    That's not very fault tolerant.  I had no sooner clicked "Execute" than I realized that the ORDER BY statement would cause it to sort 200 thousand rows with three cascading sorts.  Without the ORDER BY, the query returns immediately.  Shouldn't I be able to cancel it so I can comment the ORDER BY and get the data right back?

    That's ridiculous. What did you think? That software should react gracefully to user error? 



  • @strcmp said:

    I don't know which version you are using (the license codes seem to work with every version), but current versions have a nice [Cancel] button. Not using threads causes less load on the DB server and the queries are starting faster, IIRC. It is documented why this is default. If the DB session is blocked, you can't do much with the program anyway and there is no reason not to hang.

    If you have the needed GRANTs, you can open a second TOAD and use the Session manager to kill the DB session with your query (you can also use a command line client, this way you don't need the session listing ability, you only have to find out the session id somehow). Of course long running statements cause an equally long rollback if you do that and place further load on the server, sometimes you just have to wait through that before doing more queries. You should have thought about what you were doing before anyway, just don't run excessive queries...

     

     What are you smoking?

    1. One user with 2 threads doesn't add any more overhead on the DBMS than two people connected with 1 thread each.
    2. Of course, the term "thread" is a misnomer. What you are really referring to is how many concurrent sessions you have.
    3. Even in single-session mode, Toad should still have at least 2 threads: one to handle the DBMS session (which might block for long periods of time), and another to handle the user interface... that is primarily what BTK was complaining about.
    4. The reason why you would want to user single-session mode is so that you can have transaction consistency in two different windows. If you have 2 sessions and 1 session is in the middle of the transaction, the 2nd session won't be consistent with the 1st. The reason why'd you want multiple sessions is to be able to run long queries in one window (such as a complicated report) and still be able to run short queries in a another window.
    5. Long running statements do not cause "equally long rollback". I think maybe you're talking about "redo", but the length of execution time is not at all proportional to the amount of redo generated. Consider that a SELECT doesn't produce any redo at all.
    6. "Don't run excessive queries"... you've clearly never worked on large datasets. Sometimes you need to answer a question by running a complicated query against a large dataset. There's no way around it.
    7. Most users don't have the privileges to kill sessions... at least not when you work at big-boy companies.
    8. "you only have to find out the session id somehow"... like "SELECT * FROM v$session"?? Hmm... if only... somehow...

    "Of course long running statements cause an equally long rollback if you
    do that and place further load on the server, sometimes you just have
    to wait through that before doing more queries."

     Representative line... this sums up exactly why you're a Toad fan. You don't see any problem at all waiting while your program is locked up on a long query.



  • @Maciej said:

    @belgariontheking said:

    @strcmp said:

    You should have thought about what you were doing before anyway, just don't run excessive queries...
    That's not very fault tolerant.  I had no sooner clicked "Execute" than I realized that the ORDER BY statement would cause it to sort 200 thousand rows with three cascading sorts.  Without the ORDER BY, the query returns immediately.  Shouldn't I be able to cancel it so I can comment the ORDER BY and get the data right back?

    That's ridiculous. What did you think? That software should react gracefully to user error? 

    Umm, yes.  That's exactly what I think.  Again, I can cancel a query in SQL Developer without having to enable an option.  Why is it ridiculous to expect that from a (supposedly) better application?


    1. Toad is unstable, has TERRIBLE UI design and overall annoys the fuck out of me.
    2. SQL Developer does not have a lot of features of toad.
    3. Building your own oracle client is not worth the effort. SQL Developer just uses JDBC drivers that oracle provides. If you think about it using the TNSNames.ora is good because you might have other tools that need access to the same databases so one place to configure it all. SQL Developer allows you to use TNSNames.ora too.
    4. Toad has a nice SQL formatting tool, nicer than SQL Developer.
    5. Toad's default single-threadedness is retarded. I still cannot figure out why its the default.

      <edit>
    6. Configuring toad is no cake-walk.


  • @astonerbum said:

    4) Toad has a nice SQL formatting tool, nicer than SQL Developer.
    This is the only point on which I disagree.  Maybe I'm running an old version of TOAD, but SQL Developer formats code much nicer.  TOAD combines comment lines with non-comment lines, commenting out half my query.

    Also, the way it does syntax coloring is horrific.  Comments get italicised, so the top half of the last letter of your comment is halfway out of its fixed-width "area."

    While I'm on the subject, though, I have a question.  I've always been told that the standard was to capitalize reserved words (SELECT, FROM, AV, COUNT) and lower case your table and field names.  Some of my coworkers disagree.  Personally, I think that capitalizing table and field names makes it ugly and unreadable.  What do you think?



  • I refuse to take any enterprise-level tool/software seriously when it "ribbits" on startup.  I'm sorry, I just can't do it.  I just don't have it in me.



  • @belgariontheking said:

    While I'm on the subject, though, I have a question.  I've always been told that the standard was to capitalize reserved words (SELECT, FROM, AV, COUNT) and lower case your table and field names.  Some of my coworkers disagree.  Personally, I think that capitalizing table and field names makes it ugly and unreadable.  What do you think?

    Absolutely.  All caps looks horrible and is a pain to read.  Better is all lowercase but best is capitalizing built-in words and lowercasing user-defined names.



  • @belgariontheking said:

    That's not very fault tolerant.  I had no sooner clicked "Execute" than I realized that the ORDER BY statement would cause it to sort 200 thousand rows with three cascading sorts.  Without the ORDER BY, the query returns immediately.  Shouldn't I be able to cancel it so I can comment the ORDER BY and get the data right back?

    You can always look at the query plan, and while using a database you should know what you are doing, DROP is not fault tolerant either.

    @belgariontheking said:

    Of course I can start the program again, but first I have to forcefully shutdown the old one.  Why should I have to do that?

    I don't have to do that, and I don't understand why you should have to do that, either. Given you unchecked the 'one instance' option you can start as many instances as you like.

    @belgariontheking said:

    It wasn't Oracle's fault that they had to change their tnsnames.

    AFAIK tnsnames is only used by the Oracle client the program uses to connect. So if Oracle code behaves strangely, it is the library user's fault?



  • @strcmp said:

    @belgariontheking said:
    That's not very fault tolerant.  I had no sooner clicked "Execute" than I realized that the ORDER BY statement would cause it to sort 200 thousand rows with three cascading sorts.  Without the ORDER BY, the query returns immediately.  Shouldn't I be able to cancel it so I can comment the ORDER BY and get the data right back?

    You can always look at the query plan, and while using a database you should know what you are doing, DROP is not fault tolerant either.

    We're not complaining about Oracle here.  We're complaining about TOAD.  TOAD would not let me cancel my query.  Oracle would have no problem cancelling the query, were it instructed to do so by TOAD.  Yes, I could have avoided it by removing the ORDER BY ahead of time, and could have been reminded by an explain plan.  Or TOAD could be less retarded.  I can't be expected to do an explain plan on every damn query.  If it's taking too long, let me cancel it and THEN do an explain plan.  

    @strcmp said:

    @belgariontheking said:
    Of course I can start the program again, but first I have to forcefully shutdown the old one.  Why should I have to do that?

    I don't have to do that, and I don't understand why you should have to do that, either. Given you unchecked the 'one instance' option you can start as many instances as you like.

    Why should I have to check an option just to be a able to run multiple instances?

    @strcmp said:

    @belgariontheking said:
    It wasn't Oracle's fault that they had
    to change their tnsnames.

    AFAIK tnsnames is only used by the Oracle client the program uses to
    connect. So if Oracle code behaves strangely, it is the library user's
    fault?
    Pay attention.  The Oracle code was not behaving strangely.  It was behaving as expected.  Our employer shuffled around the servers and they had to change their tnsnames accordingly.  I did not.  They had to change them from 'dbprodserver' to 'dbprodserver.subnet.company.com' 



  • @savar said:

    One user with 2 threads doesn't add any more overhead on the DBMS than two people connected with 1 thread each.

    Yes, that's twice the load per person.

    @savar said:

    Of course, the term "thread" is a misnomer. What you are really referring to is how many concurrent sessions you have.

    Yes, but that was the term used before.

    @savar said:

    Long running statements do not cause "equally long rollback". I think maybe you're talking about "redo", but the length of execution time is not at all proportional to the amount of redo generated. Consider that a SELECT doesn't produce any redo at all.

    'redo' is just the name for the implementation specific algorithm that executes the rollback, and it's misleading for readers without knowledge about that. If the query you want to cancel is a SELECT you are lucky, but as there are others you still have to be careful what you start. It's not you GUI that is the problem, it is wasting server capacity.

    @savar said:

    Sometimes you need to answer a question by running a complicated query against a large dataset. There's no way around it.

    But than you have to do it right anyway. If you wait some hours or days for the answer and you summed the wrong column or whatever, you have wasted your time either. This is not fault tolerant either. With complicated queries on large datasets you can at least check the execution plan, so do.

    @savar said:

    Most users don't have the privileges to kill sessions... at least not when you work at big-boy companies.

    But if you can, it's far better that killing the client application, which is what the OP is doing now.

    @savar said:

    "you only have to find out the session id somehow"... like "SELECT * FROM v$session"?? Hmm... if only... somehow...

    Yes, that would be the 'somehow', thank you. But that's what the TOAD Session view does as well, so if this works, you should be able to use the Session view? And if you can't do the SELECT, you lost both ways.

    @savar said:

    You don't see any problem at all waiting while your program is locked up on a long query.

    Waiting is a problem, but that doesn't change the fact that you sometimes just have to wait. For canceling or for results, both needs time. Read mail, clean your desk, do other things. Start a new instance of the application which opens a new session. The only difference is in the GUI, you have less MDI windows in more main windows. And the hung window can block your desktop, but that is a pure windows WTF.



  • @belgariontheking said:

    Why should I have to check an option just to be a able to run multiple instances?

    It's the windows default. Most programs do that. You can't open mails twice in Outlook (mail windows are closed if you use the arrow buttons in one and hit an opened mail), you can't open a second Explorer window for the same directory (you can of course navigate to the same directory later). Yes, its not what technical people expect, but it's easy for users who double click onto the program icon to 'change to $program' and are not interested if the program has to be started for that (if it was not running) or just restored and raised.

    @belgariontheking said:

    The Oracle code was not behaving strangely. It was behaving as expected.

    So it worked in SQL+ without the change? Maybe their tnsnames was just older than yours or Oracle's JDBC driver works different from Oracle's oci.dll? TOAD is not interpreting tnsnames itself (though it contains an editor), it is letting the Oracle client libs decide how to connect.



  • @belgariontheking said:

    While I'm on the subject, though, I have a question.  I've always been told that the standard was to capitalize reserved words (SELECT, FROM, AV, COUNT) and lower case your table and field names.  Some of my coworkers disagree.  Personally, I think that capitalizing table and field names makes it ugly and unreadable.  What do you think?

    I prefer all lowercase, though I can live with capitalized reserved words. People who capitalize table and column names too seemingly live in a world of COBOL, before computers learned lower case letters.



  • @strcmp said:

    @belgariontheking said:
    Why should I have to check an option just to be a able to run multiple instances?
    It's the windows default. Most programs do that. You can't open mails twice in Outlook (mail windows are closed if you use the arrow buttons in one and hit an opened mail), you can't open a second Explorer window for the same directory (you can of course navigate to the same directory later). 

    That's bullshit. Windows doesn't care how many times you start a particular app. t's completely up to the application either run another instance, or find the first instance, activate it, and exit the second one. That's what Outlook does.

     



  •  I write SQL like this: SELECT vendor_name, contact_name, contact_phone FROM Vendors ORDER BY vendor_id;

    That is, reserved words in ALL CAPS, table names in InitialCapCamelCase, and column names in lower_case_with_underscores.



  • @morbiuswilters said:

    @belgariontheking said:

    While I'm on the subject, though, I have a question.  I've always been told that the standard was to capitalize reserved words (SELECT, FROM, AV, COUNT) and lower case your table and field names.  Some of my coworkers disagree.  Personally, I think that capitalizing table and field names makes it ugly and unreadable.  What do you think?

    Absolutely.  All caps looks horrible and is a pain to read.  Better is all lowercase but best is capitalizing built-in words and lowercasing user-defined names.


    IN IBM DB2 WORLD, EVERYTHING IS UPPERCASE. USE REAL DATABASES, N00BS



  • @strcmp said:

    @belgariontheking said:
    The Oracle code was not behaving strangely. It was behaving as expected.

    So it worked in SQL+ without the change? Maybe their tnsnames was just older than yours or Oracle's JDBC driver works different from Oracle's oci.dll? TOAD is not interpreting tnsnames itself (though it contains an editor), it is letting the Oracle client libs decide how to connect.

    I had to change one field in my connection properties for SQL Developer.  You can view that as the tnsnames if you want.  They had to go find where the tnsnames was, have someone explain what to do, search through the file, make the change, and probably restart TOAD.



  • @belgariontheking said:

    @astonerbum said:

    4) Toad has a nice SQL formatting tool, nicer than SQL Developer.
    This is the only point on which I disagree.  Maybe I'm running an old version of TOAD, but SQL Developer formats code much nicer.  TOAD combines comment lines with non-comment lines, commenting out half my query.

    Also, the way it does syntax coloring is horrific.  Comments get italicised, so the top half of the last letter of your comment is halfway out of its fixed-width "area."

    While I'm on the subject, though, I have a question.  I've always been told that the standard was to capitalize reserved words (SELECT, FROM, AV, COUNT) and lower case your table and field names.  Some of my coworkers disagree.  Personally, I think that capitalizing table and field names makes it ugly and unreadable.  What do you think?

    I don't care really, never looked up the standards. I leave that to the formatters. Whatever looks prettier. So just agree on something and go with it. I just REALLY disslike when I see inline SQL which is literally one LONG line. Or has line breaks at random spots, not like:

    SELECT a,b,c
    FROM tab_a,tab_b
    Where tab_a.a = tab_b.c
    ORDER BY tab_a.a
    
    vs
    
    select a,b,c from tab_a,
    tab_b where tab_a.a = tab_b.c
    order by tab_a.a
    

    Even pretty spacing is not as important as proper line breaks, though they do make things 100x more readable.


  •  @astonerbum said:

    SELECT a,b,c FROM tab_a,tab_b Where tab_a.a = tab_b.c ORDER BY tab_a.a

    vs

    select a,b,c from tab_a,
    tab_b where tab_a.a = tab_b.c
    order by tab_a.a


    Make up your mind jerk, are you using all caps, no caps or Partial Caps?



  • @alegr said:

    @strcmp said:

    @belgariontheking said:
    Why should I have to check an option just to be a able to run multiple instances?
    It's the windows default. Most programs do that. You can't open mails twice in Outlook (mail windows are closed if you use the arrow buttons in one and hit an opened mail), you can't open a second Explorer window for the same directory (you can of course navigate to the same directory later).

    That's bullshit. Windows doesn't care how many times you start a particular app. t's completely up to the application either run another instance, or find the first instance, activate it, and exit the second one. That's what Outlook does.

    Yes, that's what I meant when I said 'Most programs do that'. Windows is actively supporting that behaviour by passing the handle of the running instance to the second one, no searching needed.



  • @belgariontheking said:

    They had to go find where the tnsnames was, have someone explain what to do, search through the file, make the change, and probably restart TOAD.

    So they didn't use TOAD's integrated tnsnames editor? You still have to understand the contents of the file, but it saves you from having to locate it. Also all other applications using the non-JDBC client libs need this file updated as well, in this sense TOAD helps you to configure the other apps.

    Pointing the client machines to the new name of a moved server is something I would count as (comparably easy) part of the work moving the server, i.e. a job for the DBA or network admins. It can be as easy as mailing the new tnsnames.ora around, along with a description where to place it.



  • @strcmp said:

    Windows is actively supporting that behaviour by passing the handle of the
    running instance to the second one, no searching needed.

    You have to cite MSDN library on this one.



  • @strcmp said:

    @belgariontheking said:
    One user with 2 threads doesn't add any more overhead on the DBMS than two people connected with 1 thread each.

    Yes, that's twice the load per person

     

    Are you really that stupid, or are you just pretending? One user with 2 threads is exactly the same load as two people with 1 thread each. It's still just two threads; it's not "twice the load per person".

    @strcmp said:

    If you wait some hours or days for the answer and you summed the wrong column or whatever, you have wasted your time either. This is not fault tolerant either. With complicated queries on large datasets you can at least check the execution plan, so do.

    Got it. You really are an idiot. It's not fault tolerant to let you anywhere near a computer or database, either, but some dolt apparently has been doing so.

    TOAD is a monstrous, poorly written piece of crap. I was forced to use it (briefly) at a previous job, until I pointed out the error of their ways. It's vastly overpriced, has an extremely poorly designed UI, and is nothing but pure bloat. Why pay $$$$ for manureware, when you can buy PL/SQL Developer from Allround Automations for $180 per license (+$60 per year if you want the maintenance/support agreement) and get a tool that actually works? Hell, I'd rather write my own tool than use TOAD, and that would be if you offered TOAD to me for free.

    And any tool (not only TOAD) that allows you to start something that takes a long time should allow you the option of cancelling that operation. Even a DROP can be reversed if you're within a transaction and haven't committed it. 

    I'm not going to bother replying to any more of the idiotic statements in your post here. I'm just going to presume that you suffer from the same major flaw as the function you're using as a name here: you've suffered a massive buffer overrun that caused irrevocable damage to your brain.

    It's either that, or your mother took serious drugs while she was pregnant with you. I don't want to insult your mother, though, so I think it's just you. 



  • @strcmp said:

    It's the windows default.

    No, it's not. I'm running multiple instances of FireFox right now, as well as two instances of my IDE, and two Command Prompt instances. None of those had to have an option set to allow it; they just work correctly.

    @strcmp said:

    you can't open a second Explorer window for the same directory

    Yes, you can. (Well, everybody who isn't you can, apparently.)

    I rest my case. Your username here is appropriate.



  • @strcmp said:

    Windows is actively supporting that behaviour by passing the handle of the running instance to the second one, no searching needed.
     

    OK, so you know nothing about programming  either.

    Windows does no such thing. In order for that to happen, you have to set up your application to:

    Check for a mutex it's created. If it's the first instance, that mutex won't exist, and create it. If the mutex already exists, find the existing instance and pass any command-line parameters you received to it via a WM_COPYDATA structure, and then exit.  The first (still running) instance receives the WM_COPYDATA message, activates itself, and does whatever with the command-line parameters it received.

    Show me where "Windows is actively supporting that behavior by passing the handle" anywhere automatically. (And if you think it does, post code that shows that happening. I don't have to worry about that, though, because you can't.)

    Please, put your hands behind your back and step back from the keyboard. That's right. Now, turn around and start running. Get as far away from a computer as you can, and stay there. If a computer approaches, turn around and run again as far away as possible. Repeat for eternity. Thanks.



  • @KenW said:

    @strcmp said:

    Windows is actively supporting that behaviour by passing the handle of the running instance to the second one, no searching needed.
     

    OK, so you know nothing about programming  either.

    Windows does no such thing. In order for that to happen, you have to set up your application to:

     

     

    To be fair, this was true. But then Windows NT and 95 came out. There is still an hPrevInstance parameter in WinMain, but it's always NULL. See http://msdn.microsoft.com/en-us/library/ms633559(VS.85).aspx



  • @Sir Twist said:

    To be fair, this was true. But then Windows NT and 95 came out.

    And TOAD came to light when??? They are just not changing the default behaviour.



  • @KenW said:

    @strcmp said:

    you can't open a second Explorer window for the same directory

    Yes, you can. (Well, everybody who isn't you can, apparently.)

    I didn't know about this for a long time either, but the following works under XP: open your 'My Documents' folder and hide it behind another window. Double click the desktop symbol again to open the "My Documents' folder a second time. The first window is raised, no new window is opened. I don't know if there is an option for this, but this is what happens. This work with every link, not just 'My Documents'.



  • @KenW said:

    One user with 2 threads is exactly the same load as two people with 1 thread each. It's still just two threads; it's not "twice the load per person".

    2 sessions / 1 person = 2 session/person. 2 sessions / 2 persons = 1 session/person. If the number of users is a constant, you have twice the sessions in the first case. Any doubts? The relation between number of sessions and load is more complicated of course.

    @KenW said:

    And any tool (not only TOAD) that allows you to start something that takes a long time should allow you the option of cancelling that operation. Even a DROP can be reversed if you're within a transaction and haven't committed it.

    There is a cancel button, it's just not the default and it's working better in newer versions, and having a cancel button is good. But if you require Undo buttons for everything you do because you can't be bothered to think before hitting F9, you shouldn't come near my databases (or drive a car). If you develop an application, you can't sit beside your application and press 'Cancel' for run away queries either. Apparently Oracle's philophy is that it's not for weaklings, who can afford Oracle can afford trained people, too. Lots of features are not really convenient. So you could be used to that.



  • @KenW said:

    I'm running multiple instances of FireFox right now,
    I'd love to be able to do that, so that I could try logging into a webapp as two different users at the same time and compare my results.  But when I double-click the Firefox icon, it just opens a new window in the [i]same[/i] instance of Firefox.  That is, the new window still sees all of the session cookies of the first one, shares the Basic Authentication information of the first one, etc., so if I'm logged into the app as User1 in the first window, I can't stay logged in there after I log in as User2 in the second window.

    How did you manage to get a [i]second[/i] instance of Firefox to launch?  A second profile?  An about:config option?

    davidh



  • @KenW said:

    I'm running multiple instances of FireFox right now, as well as two instances of my IDE, and two Command Prompt instances. None of those had to have an option set to allow it; they just work correctly.

    Usually FireFox starts exactly one single-threaded instance, but opens many windows. So you actually rely on the self-finding feature here, because that allows FF to easily share cache and settings between windows. Explorer windows are one instance also, you quickly notice this if one window crashes: all other open directory windows disappear. Of course these programs have good internal multitasking. Explorer has an option for that, but the default is as described. And the programs don't use old fashioned MDI, so you don't see that. Excel, Word, Acroread, OOo, all the same.



  • @strcmp said:

    There is a cancel button, it's just not the default
    We know that.  Why is it not the default?  What possible reason could there be to lock up the application by default?
    @strcmp said:
    you do because you can't be bothered to think before hitting F9, you shouldn't come near my databases (or drive a car). If you develop an application, you can't sit beside your application and press 'Cancel' for run away queries either.
    It's not about thinking before hitting F9, it's about a program that costs a lot of money not performing basic functions by default.



  • @psiphiorg said:

    @KenW said:
    I'm running multiple instances of FireFox right now,
    I'd love to be able to do that, so that I could try logging into a webapp as two different users at the same time and compare my results.
    Use multiple user names? Use multiple profiles on a single user name? The latter may not work, but the former certainly will.



  • @psiphiorg said:

    How did you manage to get a second instance of Firefox to launch?  A second profile?  An about:config option?

    A second profile would do it, called with something like "firefox -no-remote -P qrst". "firefox -no-remote" on its own will do this once you have a second profile, but prints an unhelpful error message if you have only one.

    [url]http://developer.mozilla.org/en/Command_Line_Options[/url] has more details.

    The "1 copy per profile" thing means that it can't just start another copy automatically if it is unable to use the newest existing one as the likes of Excel do.



  • @strcmp said:

    @belgariontheking said:

    I could not bring up another instance of TOAD while waiting for one query to finish.
    I can, you can simply start the program again. Of course the default is the stupid windows standard behaviour to just raise the running window if the program already runs, but that can be changed. Strangely sometimes one of the windows can't be minimized any more and you have to move the window out of the desktop to hide it.

     Kind of just nitpicking, but this isn't standard Windows behavior.  You have to write code to make this happen (not the other way around) - though, enough programs do it that it might give you that idea.



  • @Morbii said:

    Kind of just nitpicking, but this isn't standard Windows behavior.  You have to write code to make this happen (not the other way around) - though, enough programs do it that it might give you that idea.

    This ultimately depends on what you mean by 'standard behavior', a) what is builtin and will happen if you don't say otherwise or b) what is expected, because most entities (programs) do it. This is uncommon on e.g. unix, thus the prefix 'windows'. Did I translate that wrongly?



  • @strcmp said:

    @KenW said:
    One user with 2 threads is exactly the same load as two people with 1 thread each. It's still just two threads; it's not "twice the load per person".

    2 sessions / 1 person = 2 session/person. 2 sessions / 2 persons = 1 session/person. If the number of users is a constant, you have twice the sessions in the first case. Any doubts? The relation between number of sessions and load is more complicated of course.

     

    You really are this dense, aren't you?

    1 user * 2 threads = 2 threads

    2 users * 1 thread = 2 threads.

    So we know you're not a programmer, you don't know math, don't understand basic logic, and can't identify crappy software when you use it.

     @strcmp said:

    Apparently Oracle's philophy is that it's not for weaklings, who can afford Oracle can afford trained people, too. Lots of features are not really convenient. So you could be used to that.

    No, Oracle's philosophy is "we can find the morons with big bank accounts and charge them lots of money. In order to do that, we need big, bloated software so they feel they got their money's worth", and the guys that do TOAD think that policy is good, too.

    And if you're spending the amount of money you spend to use Oracle and TOAD, lots of features should be included with that lots of money; after all, they're being paid extremely well to deliver those features.

    Being able to cancel something is always good, whether you think you'll need it or not. I mean, even with your car - isn't it a good thing to start it and then think, "Wait. I had that last drink. Maybe I shouldn't drive." and be able to turn it back off? Or would it be better to you to be forced to go ahead and drive simply because you'd already started the car? And before you say, "But you should have thought of that before you started the car in the first place.", don't. Obviously your ability to reason was already affected by having too much to drink. And yours has obviously been affected by something; I mean, after all, you use TOAD and think you like it. 

     

     



  • @strcmp said:

    I didn't know about this for a long time either, but the following works under XP: open your 'My Documents' folder and hide it behind another window. Double click the desktop symbol again to open the "My Documents' folder a second time. The first window is raised, no new window is opened. I don't know if there is an option for this, but this is what happens. This work with every link, not just 'My Documents'.
     

    That's been an optional behavior (not the default - an OPTIONAL behavior) since Win95. It's configurable under Tools|Options in Explorer.

    Congrats. 8 years after XP was released, you've caught up with new behavior available in Win95. Your parents should be proud. 



  • @psiphiorg said:

    How did you manage to get a second instance of Firefox to launch?  A second profile?  An about:config option?
     

    Right click on any link in FireFox, and choose "Open in a new window". Voila - a second instance of FireFox.  (Verified by checking Task Manager's Processes Tab and seeing separate FireFox.exe entries.)



  • @Sir Twist said:

    @KenW said:

    @strcmp said:

    Windows is actively supporting that behaviour by passing the handle of the running instance to the second one, no searching needed.
     

    OK, so you know nothing about programming  either.

    Windows does no such thing. In order for that to happen, you have to set up your application to:

     

    To be fair, this was true. But then Windows NT and 95 came out. There is still an hPrevInstance parameter in WinMain, but it's always NULL. See http://msdn.microsoft.com/en-us/library/ms633559(VS.85).aspx

     

    No, actually it still wasn't. The only difference was that, under early (16-bit) versions of Windows you didn't have to jump through the mutex creation hoop; [b]your application[/b] could simply test hPrevInstance to see if you were the first instance running or not. [b]Your application[/b] still, however, had to handle the switch to the first instance and passing on any command-line stuff the second instance received. 



  • @strcmp said:

    @Morbii said:
    Kind of just nitpicking, but this isn't standard Windows behavior.  You have to write code to make this happen (not the other way around) - though, enough programs do it that it might give you that idea.

    This ultimately depends on what you mean by 'standard behavior', a) what is builtin and will happen if you don't say otherwise or b) what is expected, because most entities (programs) do it. This is uncommon on e.g. unix, thus the prefix 'windows'. Did I translate that wrongly?

     

    Standard behavior, when you're discussing something specific, refers to "normally expected behavior on the <specific platform we're discussing)". So, since this entire thread has been about Windows, it refers to "standard behavior on Windows". So whether it's common or not on other platforms has no bearing here.

    Do us all a favor and find yourself another line of work. Please? There are enough unqualified people in this industry; don't add more cruft.

    Thanks. 



  • @KenW said:

    @psiphiorg said:
    How did you manage to get a second instance of Firefox to launch?  A second profile?  An about:config option?
    Right click on any link in FireFox, and choose "Open in a new window". Voila - a second instance of FireFox.  (Verified by checking Task Manager's Processes Tab and seeing separate FireFox.exe entries.)
    This doesn't happen when I repeat your process.  I can get separate instances in IE6, though, which I appreciate because an error in one instance will not close them all down.



  • @belgariontheking said:

    @KenW said:

    @psiphiorg said:
    How did you manage to get a second instance of Firefox to launch?  A second profile?  An about:config option?
    Right click on any link in FireFox, and choose "Open in a new window". Voila - a second instance of FireFox.  (Verified by checking Task Manager's Processes Tab and seeing separate FireFox.exe entries.)
    This doesn't happen when I repeat your process.  I can get separate instances in IE6, though, which I appreciate because an error in one instance will not close them all down.

     

    What version of FF? I'm using 2.0.0.16, and don't remember doing anything special in the configuration to enable this behavior. ??? 



  • @KenW said:

    What version of FF? I'm using 2.0.0.16, and don't remember doing anything special in the configuration to enable this behavior. ??? 
    3.0.3 ... WinXP SP2

    I seem to recall being able to get multiple instances in FF2, but without reinstalling FF2, I can't confirm.  Can anyone else confirm?



  • @belgariontheking said:

    Can anyone else confirm?
    WFM Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0) Gecko/20081008 Firefox/3.0.3; WFM Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14 (ID: 2008040413). Dunno what your problem is BTK, sorry.



  •  Confirmed DOES NOT work for me in Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3 (.NET CLR 3.5.30729)

     Perhaps you have a particular setting or add-on that makes multiple windows be multiple processes?


Log in to reply