[Pgsql-ayuda] Cantidad de registros en tablas

Víctor R. Ruiz rvr@infoastro.com
Fri, 5 Jul 2002 05:34:46 +0100


  Hola:

El Jue 04 Jul 2002 23:38, Luis Moran tecleó:
> Necesito convencerle al Jefe que adopte el POSTGRESQL y no un
> software comercial como SQLSERVER u ORACLE, pues me parecen muy
> costosos.

  Si no tienes problemas con el inglés, aquí tienes un documento que 
compara en prestaciones Oracle, PostgreSQL y SQL Server. Es de un 
profesor del MIT.

--
http://philip.greenspun.com/internet-application-workbook/basics

Choosing an RDBMS

  There are probably three reasonable choices for an RDBMS this 
semester: (1) Microsoft SQL Server, (2) Oracle, and (3) PostgreSQL. 

  For experienced Windows programmers, Microsoft SQL Server is easy to 
install and administer. And if you expect to spend the rest of your 
professional life in a Microsoft environment you might as well learn 
it. 

  Concurrency is Oracle's strongest suit relative to its commercial 
competitors. In Oracle, readers never wait for writers and writers 
never wait for readers. Suppose the publisher at a large site starts 
a query at 12:00 PM summarizing usage by user. Oracle might have to 
spend an hour sifting through 200 GB of tracking data. The disk 
drives grind and one CPU is completely used up until 1:30 PM. Further 
suppose that User #356712 comes in at 12:30 PM and changes his email 
address, thus updating a row in the users table. If the usage 
tracking query arrives at this row at 12:45 PM, Oracle will notice 
that the row was last modified after the query started. Under the "I" 
in ACID, Oracle is required to isolate the publisher from the user's 
update. Oracle does this by reaching into the rollback segment and 
producing data from user row #356712 as it was at 12:00 PM when the 
query started. Here's the scenario in a table: 

    Time                Publisher                  Public Web Service
12:00 PM    Starts a 90-minute query summarizing   --
            usage for preceding year

12:30 PM    usage summary continues to chug away   User#356712 updates
                                                   email address from
                                                   "joe@foobar.com" to
                                                   "joe@yahoo.com"

12:45 PM    usage summary arrives at User          --
            #356712; Oracle reaches into
            rollback segment and pulls out
            "joe@foobar.com" for the report,
            since that's what the value was at
            12:30 PM
1:30 PM     usage summary report completes         --


  How would this play out in Microsoft SQL Server? When you're 
reading, you take read locks on the information that you're about to 
read. Nobody can write until you release them. When you're writing, 
you take write locks on the information that you're about to update. 
Nobody can read or write until you release the locks. In the 
preceding example, User #356712 would submit his request for the 
address change at 12:30 PM. The thread on the Web server would be 
blocked waiting for the read locks to clear. How long would it wait? 
A full hour with a spinning Netscape icon. If you're thoughtful you 
can program around this locking architecture in SQL Server but most 
Internet service operators would rather just install Oracle than 
train their programmers to think more carefully about concurrency. 

  Another good thing about Oracle is that it can run on very large  
computers, such as 64-processor Unix machines. Whereas SQL Server is 
limited to the largest machines that run Windows 2000, which are 
currently 16-processor models. Thus, Internet service operators who 
believe that they may end up with thousands of simultaneous users 
generally start with Oracle. 

  The open-source purist's only realistic choice for an RDBMS is 
PostgreSQL, available from www.postgresql.org. In some ways, 
PostgreSQL has more advanced features than any commercial RDBMS and 
it has an Oracle-style multi-version concurrency system. PostgreSQL 
is easy to install and administer but is not used by operators of 
large services because there is no way to build a fault-tolerant or 
truly massive PostgreSQL installation. 

--

  Saludetes,

-- 
Víctor R. Ruiz           | - Todos estos momentos se perderán, como
http://rvr.blogalia.com/ |   lágrimas en la lluvia.