this post was submitted on 17 Nov 2023
16 points (100.0% liked)
Ask Experienced Devs
1064 readers
1 users here now
Icon base by Delapouite under CC BY 3.0 with modifications to add a gradient
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
So far, no favorites. Be warned, more a rant than anything. It's a burded of my workplace but we use oracles PL/SQL and are constrained by that and honestly nothing is good for it. It's part of the reason why it's a huge technical debt, along side how shitty debugging. Because we can't, there's a way but our firewall have been a big opponent.
But Toad is the best one, and also the worst one. Slow, old, outdated application with a price that is sky high, but the company pays for that. Had it been only SQL, I'd probably be content with jetbrains alternatives. But it does not have good code highlighting for plsql, including a lot of errors on various things. Toad does autocomplete, slow and ugly, and not all things work, but it does it. But Toad is king for doing things to the database. Easy overview of invalid objects, tables, indexes, scripts. You just need to wait for the window to slowly render, and hope the database connection didn't time out since you last used it, or otherwise the application will hang for a while, tell you it didn't work because the connection was lost and then ask if you want to reconnect, sometimes. Other times I crashes, or crashes on the thing you've done a hundred times. Or reports some memory error. God try closing a connection tab when you lost connection to the database or the database turns off. Faster to kill toad with task manager than wait for it to tell you it can't connect to disconnect from the database.
But we need it, because we need to run sql plus scripts, because compiling a package and getting errors and getting taken to the relevant lines is fast. Datagrip couldn't do that, it gave me a terminal with the entire package as inout before printing the errors. Which would significantly increase dev time, and the burden on our sanity, when we can't click the errors.
Toad manages multiple connections nicely, even if you need to wait 2 second when changing between the tabs for each connection because the interface is slow. Datagrip spent ages indexing schemas, didn't keep up with changes and somehow asked for which connection to use in every file you opened. It was messy, toad had database context much more organized. While I'm full stack, I do dabble in more than one database pretty often. From managing the QA databases, to setting up multiple bases for testing or using a few for my own development.
Toad is suffering, and on some days nothing feels like it will work. But it's still the best tool we can find. And not to forget auto format and easy explain plans. Toad had a formatter I haven't looked much at, but it's customization is more details and actually supports plsql, where Datagrip left some of our queries in awful states. The explain plan is a minor one, but it's nice to have it at the press of a button.
But toad is hell. It's slow, it freezes for a second trying to give you autocomplete options, even where you didn't want some like using a builtin sql function... Honestly an area Datagrip was better, except it also highlited all row type properties as missing making errors hard to spot when a file has countless useless errors that you can't remove without taking everything away. Datagrip also made going to function definitions awful, because you often got taken to the database source or got the option between the database and the mapped local files which was very clunky and made a mess of open tabs. Toad only opened the db source, unless you had the file for a package already open and it would take you the the function there. But it's so much more convenient after the files are opened. And development usually doesn't touch more than 4-6 at a time, so once you got them ready things were relatively smooth in Toad.
But don't get Toad, the solution is to not have Pl/sql