Why SQL Server is Better Than Oracle

  • My first exposure to SQL code and a good solid database design was on Informix! I learned a lot about design and good coding practices from that system, but it didn't teach me much about performance.

    Never worked much in Oracle, but I do remember at my old job helping to set up Oracle as a linked server on SQL Server 2005. Writing SQL queries for it was a major challenge!

    Tony
    ------------------------------------
    Are you suggesting coconuts migrate?

  • For the basic operation of an RDBMS they both do what is required. One costs a lot, the other cost ten times that or more. You get what you pay for, right? An expensive database or a really really expensive database.

    Oracle can do for a small company something SQL Server cannot, it can cause them to go broke. :-):-):-)

    Not all gray hairs are Dinosaurs!

  • I have three Kids, one is very active and gets in trouble easily, the other is a very intelligent individual. he only see the world as black or white, finally my little girl, well she is just a girl, analytical, practical can move and adjust where the wind blows. we DBA's and Developers are just like anything a dad. we tend to gravitate toward the easy things of life. I have the opportunity to work with DB2, Oracle, MSSQL, MySQL and yes the master of all Access. I make more money free lancing with access than any other Database.

    OH No you did say the nesty word Access? yes, Yes I did. Hanndy little Portable and need I say has it's own inteface and be coded just as easy as MSSQL or Oracle or... well you get my point.

    :w00t:

    "We never plan to Fail, We just fail to plan":)

  • jfogel (10/9/2012)


    Years ago I was a production DBA for Oracle but these days its all development work. My biggest gripe about Oracle is that getting data out of it is like getting blood from a rock.

    This is about the most accurate statement I have heard about Oracle ever and I have used it ever since the Oracle 7 days, so I know.. Plus, it's a "money" black hole to maintain for most organizations today.:-D

    "Technology is a weird thing. It brings you great gifts with one hand, and it stabs you in the back with the other. ...:-D"

  • I go back to 7.3 myself. We only have a few clients left who haven't moved to SQL Server but it is only a matter of time until they do.

    Cheers

  • matty_p75 - Thursday, October 4, 2007 4:39 PM

    I can't really give an imformed opinion about Oracle, but i did notice a comment about how you could use SQL Server out of the box. I can understand not wanting to have to spend a huge amount setting it up, but having worked at a place where people think it is just a glorified Access and doesn't even have DBA's or anyone administrating it with developers using it badly in lots of different, disperate ways you can go too far in the other direction.Having said that and being a SQL Server developer I have to say i've nothing but praise for SQL Server.

    Oracle is always best and better than SQL server. When come to data warehouse and large volume data handling i would always prefer oracle is the best choice. SQL server still standing behind oracle and takes years to reach oracle technology because i worked in both databases as a DBA and a developer. If people need real comparison i will post my experiences in points.

  • kannan_egd - Thursday, September 28, 2017 8:03 AM

    matty_p75 - Thursday, October 4, 2007 4:39 PM

    I can't really give an imformed opinion about Oracle, but i did notice a comment about how you could use SQL Server out of the box. I can understand not wanting to have to spend a huge amount setting it up, but having worked at a place where people think it is just a glorified Access and doesn't even have DBA's or anyone administrating it with developers using it badly in lots of different, disperate ways you can go too far in the other direction.Having said that and being a SQL Server developer I have to say i've nothing but praise for SQL Server.

    Oracle is always best and better than SQL server. When come to data warehouse and large volume data handling i would always prefer oracle is the best choice. SQL server still standing behind oracle and takes years to reach oracle technology because i worked in both databases as a DBA and a developer. If people need real comparison i will post my experiences in points.

    Please do post some actual details. Just bringing up a 10 year old thread with zero substance other than a vague opinion is pretty useless. If you have any actual substance to your claims I would be interested in hearing them.

    _______________________________________________________________

    Need help? Help us help you.

    Read the article at http://www.sqlservercentral.com/articles/Best+Practices/61537/ for best practices on asking questions.

    Need to split a string? Try Jeff Modens splitter http://www.sqlservercentral.com/articles/Tally+Table/72993/.

    Cross Tabs and Pivots, Part 1 – Converting Rows to Columns - http://www.sqlservercentral.com/articles/T-SQL/63681/
    Cross Tabs and Pivots, Part 2 - Dynamic Cross Tabs - http://www.sqlservercentral.com/articles/Crosstab/65048/
    Understanding and Using APPLY (Part 1) - http://www.sqlservercentral.com/articles/APPLY/69953/
    Understanding and Using APPLY (Part 2) - http://www.sqlservercentral.com/articles/APPLY/69954/

  • Sean Lange - Thursday, September 28, 2017 9:55 AM

    kannan_egd - Thursday, September 28, 2017 8:03 AM

    matty_p75 - Thursday, October 4, 2007 4:39 PM

    I can't really give an imformed opinion about Oracle, but i did notice a comment about how you could use SQL Server out of the box. I can understand not wanting to have to spend a huge amount setting it up, but having worked at a place where people think it is just a glorified Access and doesn't even have DBA's or anyone administrating it with developers using it badly in lots of different, disperate ways you can go too far in the other direction.Having said that and being a SQL Server developer I have to say i've nothing but praise for SQL Server.

    Oracle is always best and better than SQL server. When come to data warehouse and large volume data handling i would always prefer oracle is the best choice. SQL server still standing behind oracle and takes years to reach oracle technology because i worked in both databases as a DBA and a developer. If people need real comparison i will post my experiences in points.

    Please do post some actual details. Just bringing up a 10 year old thread with zero substance other than a vague opinion is pretty useless. If you have any actual substance to your claims I would be interested in hearing them.

    When comes to table partitioning oracle have so many choices (Range, List, Hash, composite partitioning (Range-Range, Range-List, Range-Hash, List-Range, List-Hash, List-List)),Multiple column partitioning. These options comes in oracle 8i version on wards but SQL server still relay on range partitioning also multi column partitioning is not possible in SQL server. Making workaround will not always give a best solution to the problem. making multiple columns as a composite column and make use of range partition will not solve the problems all the time also changing the system design according to data is not a best fit when come to enterprise. When running the same query both in oracle and SQL server installed in windows serve operating system, oracle is the winner even in windows platform itself, please dont ask for query execution plan and recommend for index to improve the performance. This test happened two years back and our tables dont have any indexes both oracle and sql server databases. Creating index for a very large table will help only  for reading improvement. our tables holds 2.5 billions records creating and dropping indexes takes hours to complete. SQL server is releasing their versions every year like 2012, 2014,2016,2017. Only fancy numbers are added nothing special with their version releases. Introduced column store index in 2012 as read only and read and write only in 2014 and both cluster and non cluster in 2016 what a good product improvement 🙂 Thanks to Microsoft in enhancing their products year by year, if it happens like that it will takes years not centuries to reach oracle features to SQL server. SQL server select query reproduces incorrect results when creating the index in partitioned tables by descending order, even select query result is not reliable in SQL server. Please run the below query you will find the bug in sql server

    CREATE PARTITION FUNCTION PF (integer)

    AS RANGE RIGHT

    FOR VALUES (1000, 2000, 3000, 4000, 5000);

     

    CREATE PARTITION SCHEME PS

    AS PARTITION PF

    ALL TO ([PRIMARY]);

     

    -- Partitioned

    CREATE TABLE dbo.T1

    (

        T1ID    integer NOT NULL,

        SomeID  integer NOT NULL,

     

        CONSTRAINT [PK dbo.T1 T1ID]

            PRIMARY KEYCLUSTERED (T1ID)

            ON PS (T1ID)

    );

     

    -- Not partitioned

    CREATE TABLE dbo.T2

    (

        T2ID    integer IDENTITY(1,1) NOT NULL,

        T1ID    integer NOT NULL,

       

        CONSTRAINT [PK dbo.T2 T2ID]

            PRIMARY KEYCLUSTERED (T2ID)

            ON [PRIMARY]

    );

    DECLARE @count INT

    DECLARE @row INT

    SET @row = 1

    SET @count = 4999

    WHILE (@row <= @count)

    BEGIN

    INSERT dbo.T1 (T1ID, SomeID)

    values (@row, 1234)

    Set @row += 1

    end

     

    INSERT dbo.T2 (T1ID)

    SELECT T1ID

    FROM dbo.T1

    WHERE T1ID % 5 = 0;

     

    SELECT COUNT_BIG(*)

    FROM dbo.T1 AS T1

    JOIN dbo.T2 AS T2

        ON T2.T1ID = T1.T1ID

    WHERE T1.SomeID = 1234;

     

    CREATE NONCLUSTERED INDEX [dbo.T1 SomeID]

    ON dbo.T1 (SomeID desc );

     

    drop index [dbo.T1 SomeID]

    ON dbo.T1

     

    SELECT COUNT_BIG(*)

    FROM dbo.T1 AS T1

    JOIN dbo.T2 AS T2

        ON T2.T1ID = T1.T1ID

    WHERE T1.SomeID = 1234;

     

    SELECT T1ID

    FROM dbo.T1

    WHERE SomeID = 1234

    ORDER BY T1ID ASC;

    /*

    FIX

    Inner hash JOIN dbo.T2 AS T2

     

       ON T2.T1ID = T1.T1ID

     

    WHERE T1.SomeID = 1234;

     

    ALSO BY trace flag 4199

    */

     

  • kannan_egd - Tuesday, October 3, 2017 1:07 AM

    Sean Lange - Thursday, September 28, 2017 9:55 AM

    kannan_egd - Thursday, September 28, 2017 8:03 AM

    matty_p75 - Thursday, October 4, 2007 4:39 PM

    I can't really give an imformed opinion about Oracle, but i did notice a comment about how you could use SQL Server out of the box. I can understand not wanting to have to spend a huge amount setting it up, but having worked at a place where people think it is just a glorified Access and doesn't even have DBA's or anyone administrating it with developers using it badly in lots of different, disperate ways you can go too far in the other direction.Having said that and being a SQL Server developer I have to say i've nothing but praise for SQL Server.

    Oracle is always best and better than SQL server. When come to data warehouse and large volume data handling i would always prefer oracle is the best choice. SQL server still standing behind oracle and takes years to reach oracle technology because i worked in both databases as a DBA and a developer. If people need real comparison i will post my experiences in points.

    Please do post some actual details. Just bringing up a 10 year old thread with zero substance other than a vague opinion is pretty useless. If you have any actual substance to your claims I would be interested in hearing them.

    When comes to table partitioning oracle have so many choices (Range, List, Hash, composite partitioning (Range-Range, Range-List, Range-Hash, List-Range, List-Hash, List-List)),Multiple column partitioning. These options comes in oracle 8i version on wards but SQL server still relay on range partitioning also multi column partitioning is not possible in SQL server. Making workaround will not always give a best solution to the problem. making multiple columns as a composite column and make use of range partition will not solve the problems all the time also changing the system design according to data is not a best fit when come to enterprise. When running the same query both in oracle and SQL server installed in windows serve operating system, oracle is the winner even in windows platform itself, please dont ask for query execution plan and recommend for index to improve the performance. This test happened two years back and our tables dont have any indexes both oracle and sql server databases. Creating index for a very large table will help only  for reading improvement. our tables holds 2.5 billions records creating and dropping indexes takes hours to complete. SQL server is releasing their versions every year like 2012, 2014,2016,2017. Only fancy numbers are added nothing special with their version releases. Introduced column store index in 2012 as read only and read and write only in 2014 and both cluster and non cluster in 2016 what a good product improvement 🙂 Thanks to Microsoft in enhancing their products year by year, if it happens like that it will takes years not centuries to reach oracle features to SQL server. SQL server select query reproduces incorrect results when creating the index in partitioned tables by descending order, even select query result is not reliable in SQL server. Please run the below query you will find the bug in sql server

    CREATE PARTITION FUNCTION PF (integer)

    AS RANGE RIGHT

    FOR VALUES (1000, 2000, 3000, 4000, 5000);

     

    CREATE PARTITION SCHEME PS

    AS PARTITION PF

    ALL TO ([PRIMARY]);

     

    -- Partitioned

    CREATE TABLE dbo.T1

    (

        T1ID    integer NOT NULL,

        SomeID  integer NOT NULL,

     

        CONSTRAINT [PK dbo.T1 T1ID]

            PRIMARY KEYCLUSTERED (T1ID)

            ON PS (T1ID)

    );

     

    -- Not partitioned

    CREATE TABLE dbo.T2

    (

        T2ID    integer IDENTITY(1,1) NOT NULL,

        T1ID    integer NOT NULL,

       

        CONSTRAINT [PK dbo.T2 T2ID]

            PRIMARY KEYCLUSTERED (T2ID)

            ON [PRIMARY]

    );

    DECLARE @count INT

    DECLARE @row INT

    SET @row = 1

    SET @count = 4999

    WHILE (@row <= @count)

    BEGIN

    INSERT dbo.T1 (T1ID, SomeID)

    values (@row, 1234)

    Set @row += 1

    end

     

    INSERT dbo.T2 (T1ID)

    SELECT T1ID

    FROM dbo.T1

    WHERE T1ID % 5 = 0;

     

    SELECT COUNT_BIG(*)

    FROM dbo.T1 AS T1

    JOIN dbo.T2 AS T2

        ON T2.T1ID = T1.T1ID

    WHERE T1.SomeID = 1234;

     

    CREATE NONCLUSTERED INDEX [dbo.T1 SomeID]

    ON dbo.T1 (SomeID desc );

     

    drop index [dbo.T1 SomeID]

    ON dbo.T1

     

    SELECT COUNT_BIG(*)

    FROM dbo.T1 AS T1

    JOIN dbo.T2 AS T2

        ON T2.T1ID = T1.T1ID

    WHERE T1.SomeID = 1234;

     

    SELECT T1ID

    FROM dbo.T1

    WHERE SomeID = 1234

    ORDER BY T1ID ASC;

    /*

    FIX

    Inner hash JOIN dbo.T2 AS T2

     

       ON T2.T1ID = T1.T1ID

     

    WHERE T1.SomeID = 1234;

     

    ALSO BY trace flag 4199

    */

     

  • kannan_egd - Tuesday, October 3, 2017 1:09 AM

    kannan_egd - Tuesday, October 3, 2017 1:07 AM

    Sean Lange - Thursday, September 28, 2017 9:55 AM

    kannan_egd - Thursday, September 28, 2017 8:03 AM

    matty_p75 - Thursday, October 4, 2007 4:39 PM

    I can't really give an imformed opinion about Oracle, but i did notice a comment about how you could use SQL Server out of the box. I can understand not wanting to have to spend a huge amount setting it up, but having worked at a place where people think it is just a glorified Access and doesn't even have DBA's or anyone administrating it with developers using it badly in lots of different, disperate ways you can go too far in the other direction.Having said that and being a SQL Server developer I have to say i've nothing but praise for SQL Server.

    Oracle is always best and better than SQL server. When come to data warehouse and large volume data handling i would always prefer oracle is the best choice. SQL server still standing behind oracle and takes years to reach oracle technology because i worked in both databases as a DBA and a developer. If people need real comparison i will post my experiences in points.

    Please do post some actual details. Just bringing up a 10 year old thread with zero substance other than a vague opinion is pretty useless. If you have any actual substance to your claims I would be interested in hearing them.

    When comes to table partitioning oracle have so many choices (Range, List, Hash, composite partitioning (Range-Range, Range-List, Range-Hash, List-Range, List-Hash, List-List)),Multiple column partitioning. These options comes in oracle 8i version on wards but SQL server still relay on range partitioning also multi column partitioning is not possible in SQL server. Making workaround will not always give a best solution to the problem. making multiple columns as a composite column and make use of range partition will not solve the problems all the time also changing the system design according to data is not a best fit when come to enterprise. When running the same query both in oracle and SQL server installed in windows serve operating system, oracle is the winner even in windows platform itself, please dont ask for query execution plan and recommend for index to improve the performance. This test happened two years back and our tables dont have any indexes both oracle and sql server databases. Creating index for a very large table will help only  for reading improvement. our tables holds 2.5 billions records creating and dropping indexes takes hours to complete. SQL server is releasing their versions every year like 2012, 2014,2016,2017. Only fancy numbers are added nothing special with their version releases. Introduced column store index in 2012 as read only and read and write only in 2014 and both cluster and non cluster in 2016 what a good product improvement 🙂 Thanks to Microsoft in enhancing their products year by year, if it happens like that it will takes years not centuries to reach oracle features to SQL server. SQL server select query reproduces incorrect results when creating the index in partitioned tables by descending order, even select query result is not reliable in SQL server. Please run the below query you will find the bug in sql server

    CREATE PARTITION FUNCTION PF (integer)

    AS RANGE RIGHT

    FOR VALUES (1000, 2000, 3000, 4000, 5000);

     

    CREATE PARTITION SCHEME PS

    AS PARTITION PF

    ALL TO ([PRIMARY]);

     

    -- Partitioned

    CREATE TABLE dbo.T1

    (

        T1ID    integer NOT NULL,

        SomeID  integer NOT NULL,

     

        CONSTRAINT [PK dbo.T1 T1ID]

            PRIMARY KEYCLUSTERED (T1ID)

            ON PS (T1ID)

    );

     

    -- Not partitioned

    CREATE TABLE dbo.T2

    (

        T2ID    integer IDENTITY(1,1) NOT NULL,

        T1ID    integer NOT NULL,

       

        CONSTRAINT [PK dbo.T2 T2ID]

            PRIMARY KEYCLUSTERED (T2ID)

            ON [PRIMARY]

    );

    DECLARE @count INT

    DECLARE @row INT

    SET @row = 1

    SET @count = 4999

    WHILE (@row <= @count)

    BEGIN

    INSERT dbo.T1 (T1ID, SomeID)

    values (@row, 1234)

    Set @row += 1

    end

     

    INSERT dbo.T2 (T1ID)

    SELECT T1ID

    FROM dbo.T1

    WHERE T1ID % 5 = 0;

     

    SELECT COUNT_BIG(*)

    FROM dbo.T1 AS T1

    JOIN dbo.T2 AS T2

        ON T2.T1ID = T1.T1ID

    WHERE T1.SomeID = 1234;

     

    CREATE NONCLUSTERED INDEX [dbo.T1 SomeID]

    ON dbo.T1 (SomeID desc );

     

    drop index [dbo.T1 SomeID]

    ON dbo.T1

     

    SELECT COUNT_BIG(*)

    FROM dbo.T1 AS T1

    JOIN dbo.T2 AS T2

        ON T2.T1ID = T1.T1ID

    WHERE T1.SomeID = 1234;

     

    SELECT T1ID

    FROM dbo.T1

    WHERE SomeID = 1234

    ORDER BY T1ID ASC;

    /*

    FIX

    Inner hash JOIN dbo.T2 AS T2

     

       ON T2.T1ID = T1.T1ID

     

    WHERE T1.SomeID = 1234;

     

    ALSO BY trace flag 4199

    */

     

    Refer the URL: https://sqlperformance.com/2013/08/t-sql-queries/incorrect-results-with-merge-join. An excellent article published by paul white. He is a person always addressing issues in SQL server incorrect result. With such results we consider oracle is more reliable than SQL server and it takes centuries to sql server to reach oracle features and technologies.

  • kannan_egd - Tuesday, October 3, 2017 1:12 AM

    kannan_egd - Tuesday, October 3, 2017 1:09 AM

    kannan_egd - Tuesday, October 3, 2017 1:07 AM

    Sean Lange - Thursday, September 28, 2017 9:55 AM

    kannan_egd - Thursday, September 28, 2017 8:03 AM

    matty_p75 - Thursday, October 4, 2007 4:39 PM

    I can't really give an imformed opinion about Oracle, but i did notice a comment about how you could use SQL Server out of the box. I can understand not wanting to have to spend a huge amount setting it up, but having worked at a place where people think it is just a glorified Access and doesn't even have DBA's or anyone administrating it with developers using it badly in lots of different, disperate ways you can go too far in the other direction.Having said that and being a SQL Server developer I have to say i've nothing but praise for SQL Server.

    Oracle is always best and better than SQL server. When come to data warehouse and large volume data handling i would always prefer oracle is the best choice. SQL server still standing behind oracle and takes years to reach oracle technology because i worked in both databases as a DBA and a developer. If people need real comparison i will post my experiences in points.

    Please do post some actual details. Just bringing up a 10 year old thread with zero substance other than a vague opinion is pretty useless. If you have any actual substance to your claims I would be interested in hearing them.

    When comes to table partitioning oracle have so many choices (Range, List, Hash, composite partitioning (Range-Range, Range-List, Range-Hash, List-Range, List-Hash, List-List)),Multiple column partitioning. These options comes in oracle 8i version on wards but SQL server still relay on range partitioning also multi column partitioning is not possible in SQL server. Making workaround will not always give a best solution to the problem. making multiple columns as a composite column and make use of range partition will not solve the problems all the time also changing the system design according to data is not a best fit when come to enterprise. When running the same query both in oracle and SQL server installed in windows serve operating system, oracle is the winner even in windows platform itself, please dont ask for query execution plan and recommend for index to improve the performance. This test happened two years back and our tables dont have any indexes both oracle and sql server databases. Creating index for a very large table will help only  for reading improvement. our tables holds 2.5 billions records creating and dropping indexes takes hours to complete. SQL server is releasing their versions every year like 2012, 2014,2016,2017. Only fancy numbers are added nothing special with their version releases. Introduced column store index in 2012 as read only and read and write only in 2014 and both cluster and non cluster in 2016 what a good product improvement 🙂 Thanks to Microsoft in enhancing their products year by year, if it happens like that it will takes years not centuries to reach oracle features to SQL server. SQL server select query reproduces incorrect results when creating the index in partitioned tables by descending order, even select query result is not reliable in SQL server. Please run the below query you will find the bug in sql server

    CREATE PARTITION FUNCTION PF (integer)

    AS RANGE RIGHT

    FOR VALUES (1000, 2000, 3000, 4000, 5000);

     

    CREATE PARTITION SCHEME PS

    AS PARTITION PF

    ALL TO ([PRIMARY]);

     

    -- Partitioned

    CREATE TABLE dbo.T1

    (

        T1ID    integer NOT NULL,

        SomeID  integer NOT NULL,

     

        CONSTRAINT [PK dbo.T1 T1ID]

            PRIMARY KEYCLUSTERED (T1ID)

            ON PS (T1ID)

    );

     

    -- Not partitioned

    CREATE TABLE dbo.T2

    (

        T2ID    integer IDENTITY(1,1) NOT NULL,

        T1ID    integer NOT NULL,

       

        CONSTRAINT [PK dbo.T2 T2ID]

            PRIMARY KEYCLUSTERED (T2ID)

            ON [PRIMARY]

    );

    DECLARE @count INT

    DECLARE @row INT

    SET @row = 1

    SET @count = 4999

    WHILE (@row <= @count)

    BEGIN

    INSERT dbo.T1 (T1ID, SomeID)

    values (@row, 1234)

    Set @row += 1

    end

     

    INSERT dbo.T2 (T1ID)

    SELECT T1ID

    FROM dbo.T1

    WHERE T1ID % 5 = 0;

     

    SELECT COUNT_BIG(*)

    FROM dbo.T1 AS T1

    JOIN dbo.T2 AS T2

        ON T2.T1ID = T1.T1ID

    WHERE T1.SomeID = 1234;

     

    CREATE NONCLUSTERED INDEX [dbo.T1 SomeID]

    ON dbo.T1 (SomeID desc );

     

    drop index [dbo.T1 SomeID]

    ON dbo.T1

     

    SELECT COUNT_BIG(*)

    FROM dbo.T1 AS T1

    JOIN dbo.T2 AS T2

        ON T2.T1ID = T1.T1ID

    WHERE T1.SomeID = 1234;

     

    SELECT T1ID

    FROM dbo.T1

    WHERE SomeID = 1234

    ORDER BY T1ID ASC;

    /*

    FIX

    Inner hash JOIN dbo.T2 AS T2

     

       ON T2.T1ID = T1.T1ID

     

    WHERE T1.SomeID = 1234;

     

    ALSO BY trace flag 4199

    */

     

    Refer the URL: https://sqlperformance.com/2013/08/t-sql-queries/incorrect-results-with-merge-join. An excellent article published by paul white. He is a person always addressing issues in SQL server incorrect result. With such results we consider oracle is more reliable than SQL server and it takes centuries to sql server to reach oracle features and technologies.

    Please refer the email from Microsoft connect for my request

    Greetings from Microsoft Connect!

    This notification was generated for feedback item: Need improvement in table partitioning which you submitted at the Microsoft Connect site.

    Thanks for the feedback and suggestion Kannan. This isn't currently planned (not adding new partition methods) - but will keep this item open for future visibility and consideration.

    Best Regards,
    Joe Sack, Principal Program Manager, Microsoft

    You may receive a general "Feedback Item Updated" notification as well, if any other changes were made by Microsoft.

    Thank you for using Microsoft Connect!

    Regards,

    the Microsoft Connect Team

    Please do not reply directly to this message, as it is generated from an unmonitored email account. If you have comments related to your Feedback, please enter it in the Comments section (post a comment to Microsoft) of your Feedback item by navigating to the Feedback item in the link above.

    If you are having trouble accessing the Feedback link above, please go to the http://connect.microsoft.com/help/default.aspx page to report the issue, In your submission, please make sure to paste a copy the link above into the report.

  • Actually, having worked with both Oracle and SQL Server, I'll have to say that anyone that says one is better than the other is probably a bit out of line because, like anything else in this business, "It Depends".

    The DML for Oracle and SQL Server is quite different.  Sure, the ANSI code in both is quite similar but that's about it.  I suspect the only reason that I prefer SQL Server is because, when it comes to serious database work, that's what I cut my teeth on.  If I had started on Oracle, I'd probably prefer that for the same reason.

    Also and contrary to popular belief and just like SQL Server, Oracle runs a whole lot better if you write set-based code instead of falling back on loops and cursors.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • Jeff Moden - Tuesday, October 3, 2017 6:02 AM

    Actually, having worked with both Oracle and SQL Server, I'll have to say that anyone that says one is better than the other is probably a bit out of line because, like anything else in this business, "It Depends".

    The DML for Oracle and SQL Server is quite different.  Sure, the ANSI code in both is quite similar but that's about it.  I suspect the only reason that I prefer SQL Server is because, when it comes to serious database work, that's what I cut my teeth on.  If I had started on Oracle, I'd probably prefer that for the same reason.

    Also and contrary to popular belief and just like SQL Server, Oracle runs a whole lot better if you write set-based code instead of falling back on loops and cursors.

    I actually did my first database work with Oracle and I found it obtuse and user hostile. The setup code requires a degree in obscure syntax and that stupid little window you were forced to use for queries was painfully small. And the fact that the UI was written in java just made it painfully slow. I realize the IDE has matured considerably since then but I long ago moved over to sql server and never looked back.

    _______________________________________________________________

    Need help? Help us help you.

    Read the article at http://www.sqlservercentral.com/articles/Best+Practices/61537/ for best practices on asking questions.

    Need to split a string? Try Jeff Modens splitter http://www.sqlservercentral.com/articles/Tally+Table/72993/.

    Cross Tabs and Pivots, Part 1 – Converting Rows to Columns - http://www.sqlservercentral.com/articles/T-SQL/63681/
    Cross Tabs and Pivots, Part 2 - Dynamic Cross Tabs - http://www.sqlservercentral.com/articles/Crosstab/65048/
    Understanding and Using APPLY (Part 1) - http://www.sqlservercentral.com/articles/APPLY/69953/
    Understanding and Using APPLY (Part 2) - http://www.sqlservercentral.com/articles/APPLY/69954/

  • I've worked with Oracle in the past as well, and I can adapt to differences in syntax. However, a harder pill to swallow is that in Oracle, '' IS NULL.

    Everything seems normal the first few days you're in the Oracle universe, the table definitions, data, and SELECT statements all look essentially the same. But then you start getting back strange results that are inexplicably missing rows that you know are there, and that's when you realize that an empty string value in the Oracle universe is equivalent to NULL. It's like an episode of the Twilight Zone. :blink:

    "Do not seek to follow in the footsteps of the wise. Instead, seek what they sought." - Matsuo Basho

  • Eric M Russell - Tuesday, October 3, 2017 7:48 AM

    I've worked with Oracle in the past as well, and I can adapt to differences in syntax. However, a harder pill to swallow is that in Oracle, '' IS NULL.

    Everything seems normal the first few days you're in the Oracle universe, the table definitions, data, and SELECT statements all look essentially the same. But then you start getting back strange results that are inexplicably missing rows that you know are there, and that's when you realize that an empty string value in the Oracle universe is equivalent to NULL. It's like an episode of the Twilight Zone. :blink:

    Boy howdy!  There ARE some nuances.  Imagine the surprise I got when I used an "&" in a block comment and Oracle came back with a popup asking me for a value for a parameter.

    Then again and except for the term FOR EACH to get all rows of an Insert, Update, or Delete, I REALLY like the way triggers work in Oracle especially with the ability to do a true BEFORE instead of an INSTEAD OF.  I also like the idea of making parameters in stored procedures based on what the datatype of something else is instead of having to make a UDT.

    I don't, however, like the idea of Global Reference cursors nor the idea that you can't overload a variable when needed.  I also deplore the fact that UPDATE in Oracle doesn't have a FROM clause.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

Viewing 15 posts - 46 through 60 (of 90 total)

You must be logged in to reply to this topic. Login to reply