[Info-vax] CRTL and RMS vs SSIO

Arne Vajhøj arne at vajhoej.dk
Wed Oct 13 13:59:14 EDT 2021


On 10/13/2021 11:09 AM, Dave Froble wrote:
> On 10/13/2021 10:04 AM, Arne Vajhøj wrote:
>> On 10/12/2021 9:52 PM, Dave Froble wrote:
>>> On 10/12/2021 5:10 PM, Arne Vajhøj wrote:
>>>> On 10/12/2021 4:42 PM, Dave Froble wrote:
>>>>> On 10/12/2021 3:55 PM, Arne Vajhøj wrote:
>>>>>> But the money math has changed.
>>>>>>
>>>>>> I would say that over the last 30 years:
>>>>>>
>>>>>> RDBMS license cost changed from expensive to free options available
>>>>>>
>>>>>> RDBMS hardware resource cost changed from expensive to insignificant
>>>>>>
>>>>>> writing and maintaining code to manage IDX file cost is more or less
>>>>>> constant
>>>>>
>>>>> Are you suggesting writing and maintaining code for RDBMS is any
>>>>> different?
>>>>
>>>> You need much less code because the database software does
>>>> so much.
>>>>
>>>> It is a tradeoff - you write much less code but the generic code
>>>> in the RDBMS use more CPU and memory.
>>>
>>> Excuse me, I'm just a dummy, come down out of the hills.  But:
>>>
>>> 1) Open file
>>> 2) Access data
>>> 3) Do some work
>>> 4) Write/Update data
>>> 5) Done
>>>
>>> and
>>>
>>> 1) Access database
>>> 2) Access data
>>> 3) Do some work
>>> 4) Write/Update data
>>> 5) Done
>>>
>>> Guess I don't see much difference.
>>
>> That is because you describe *what* is being done not *how* it is done.
>>
>> In general you can expect:
>>
>> data maintenance - replacing a lot of application code with few lines of
>> SQL
> 
> You claim that, but I just don't see it.
> 
>> applications with simple queries - slightly less code
>>
>> application code with complex queries - a lot less code
>>
>> adhoc just get some numbers - replacing a lot of application code with
>> few lines of SQL
> 
> Don't see that.
> 
> Also, I've noticed that doing some things with SQL can be much more 
> complex.

Here is an example of some (Python) code using SQL to
join, select, aggregate, sort and limit some data.

import sqlite3

con = sqlite3.connect('test.db')
c = con.cursor()
c.execute('''SELECT customers.name,SUM(orderlines.price) AS totalsales
              FROM customers
              LEFT JOIN orders ON customers.customer_id = orders.customer_id
              LEFT JOIN orderlines ON orders.order_id = orderlines.order_id
              WHERE orders.status = 'Delivered'
              GROUP BY customers.name
              HAVING totalsales > 10
              ORDER BY totalsales DESC
              LIMIT 3''')
for row in c.fetchall():
     print('%s : %d' % (row[0], row[1]))
con.commit()
con.close()

I believe that it would take a lot more code to
retrieve data from index-sequential files and
do the work on the data.

Arne





More information about the Info-vax mailing list