On 2016/04/16 11:59 AM, Cecil Westerhof wrote:
> I am playing a bit with SQLite. I first had a table with 1E8 elements. When
> trying to drop this it looked like SQLite got hung. I tried it from DB
> Browser and a Java program.
> I just tried it with a table of 1E7 elements. That was dropped in about 13
> seconds.
> I will try it again with 1E8 elements, but it takes 4? hours to generated.
> Is it possible that SQLite has trouble dropping very large tables? It was
> 5.2 GB. With 1E7 elements the table is 512 MB.
>
> The definition of the table:
> CREATE TABLE testUniqueUUID (
>      UUID    blob,
>
>      PRIMARY KEY(UUID)
>      CHECK(TYPEOF(UUID) = 'blob'           AND
>            LENGTH(UUID) = 16               AND
>            SUBSTR(HEX(UUID), 13, 1) == '4' AND
>            SUBSTR(HEX(UUID), 17, 1) IN ('8', '9', 'A', 'B')
>      )
> );
>

I just duplicated the experiment (though I did not include the CHECK 
constraint) on SQLitespeed using standard SQLite library, and here is 
the results for the 10 mil rows (1E+7):


   -- SQLite version 3.9.2  [ Release: 2015-11-02 ]  on SQLitespeed 
version 2.0.2.4.

   -- Script Items: 4          Parameter Count: 0
   -- 2016-04-16 14:42:43.333  |  [Info]       Script Initialized, 
Started executing...
   -- 
================================================================================================

CREATE TABLE testUniqueUUID (
     UUID BLOB PRIMARY KEY
);

   --    Item Stats:  Item No:           1             Query Size 
(Chars):  62
   --                 VM Work Steps:     43            Rows 
Modified:       0
   --                 Full Query Time:   0d 00h 00m and 00.001s
   --                 Query Result:      Success.
   -- 
------------------------------------------------------------------------------------------------

WITH RndGen(i,RndBlob) AS (
   SELECT 0, (randomblob(16))
   UNION ALL
   SELECT i+1, (randomblob(16)) FROM RndGen WHERE i<10000000
)
INSERT INTO testUniqueUUID (UUID) SELECT RndBlob FROM RndGen;


   --    Item Stats:  Item No:           2             Query Size 
(Chars):  199
   --                 Result Columns:    0 Result Rows:         0
   --                 VM Work Steps:     290000050      Rows 
Modified:       10000001
   --                 Full Query Time:   0d 00h 02m and 10.878s
   --                 Query Result:      Success.
   -- 
------------------------------------------------------------------------------------------------

SELECT UUID FROM testUniqueUUID LIMIT 10;


   -- UUID
   -- ------------------------------------
   -- 0xA3044750B1A8567E7FD9DACD5C0C64CF
   -- 0xC6C6AAFAE6179E7B28867D5FB6AED7A6
   -- 0x2267D5856D5D7601FA9E0D8A1E6A66BC
   -- 0x63BEB2ECC58EA6D02D30ED27A3A50971
   -- 0x18477B93BD35C7A2ED83010619CA3887
   -- 0x47D7F3284B094CBE3BF6D77DC974F147
   -- 0x77736E93FAFE0436199CE84760A1072A
   -- 0x015E14BEA6D3C889958329CAF9C11F5C
   -- 0x1805A44908518BE6D6DE6BA63B5A9B71
   -- 0xE21DA4DFD367286DE89343FB02B9F8EF

   --    Item Stats:  Item No:           3             Query Size 
(Chars):  43
   --                 Result Columns:    1 Result Rows:         10
   --                 VM Work Steps:     48            Rows 
Modified:       0
   --                 Full Query Time:   0d 00h 00m and 00.001s
   --                 Query Result:      Success.
   -- 
------------------------------------------------------------------------------------------------

DROP TABLE testUniqueUUID;

   --    Item Stats:  Item No:           4             Query Size 
(Chars):  28
   --                 VM Work Steps:     149           Rows 
Modified:       0
   --                 Full Query Time:   0d 00h 00m and 00.721s
   --                 Query Result:      Success.
   -- 
------------------------------------------------------------------------------------------------

   --   Script Stats: Total Script Execution Time:     0d 00h 02m and 
11.733s
   --                 Total Script Query Time:         0d 00h 02m and 
11.601s
   --                 Total Database Rows Changed: 10000001
   --                 Total Virtual-Machine Steps: 290000290
   --                 Last executed Item Index:        4
   --                 Last Script Error:
   -- 
------------------------------------------------------------------------------------------------

   -- 2016-04-16 14:44:55.054  |  [Success]    Script Success.

As you can see, the INSERT obviously takes some time (even more-so if 
the CHECK constraint is added), but the DROP Table takes almost no time 
here...

Let me try the 100 million rows, this may take some time - I will post 
again when it is done.

Cheers,
Ryan

Reply via email to