|
Home > Archive > SQL Anywhere Mobile > March 2005 > Ultralite sync; 2MB data transfer; 5MB db; 50 minutes
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Ultralite sync; 2MB data transfer; 5MB db; 50 minutes
|
|
| Carl Langren 2005-03-30, 9:42 am |
| Hello,
I am running v9.0.1(1899); XP Pro SP2; SQL Server 2K with all SP current.
Environment is Desktop PC with SQL Server sync via MobiLink (running on the
same box )to an IPaq 5550 running Ultralite.
We have approximately 2MB of data transferred to the PDA during sync
(according to the sync progress byte counter) and end up with a 5MB .udb on
the PDA following successful completion of an initial sync.
Initial sync is taking 50 minutes to an hour. This is true via
USB/Activesync or Wireless TCP/IP. The first 1MB takes about 3 minutes, and
then things just get slower. With no other apps running or loaded and the
timing is not impacted.
Would these times be considered normal?
If not, some input on tuning would be most appreciated.
Here is our MobiLink startup: dbmlsrv9.exe -c "dsn=PIDS_SQL" -zu- -zp -u
5m -d 5m -x tcpip(host=192.168.10. 163;port=2439;keep_a
live=1)
Sincerely,
Carl
| |
| Greg Fenton 2005-03-30, 9:43 am |
| Carl Langren wrote:
>
> Would these times be considered normal?
>
I would not expect a 2MB download to take 50 minutes, but there are a
number of things that could be causing the slow down.
Do you know roughly how many rows you are downloading in total?
The maximum number of rows downloaded per table?
Where is the .udb file stored: main memory? an SD card? a flash card?
Are you downloading lots of DELETEs?
greg.fenton
--
Greg Fenton
Consultant, Solution Services, iAnywhere Solutions
--------
Visit the iAnywhere Solutions Developer Community
Whitepapers, TechDocs, Downloads
http://www.ianywhere.com/developer/
| |
| Carl Langren 2005-03-30, 9:43 am |
| Dear Greg,
Thanks for the response.
Answers below.
>
> I would not expect a 2MB download to take 50 minutes, but there are a
> number of things that could be causing the slow down.
>
> Do you know roughly how many rows you are downloading in total?
> The maximum number of rows downloaded per table?
The largest tables are 19,000 rows; 12,000 rows; 7,000 rows; and 6,000 rows
respectively.
Almost all other tables are under 500, many under 100.
A total of 117 tables.
About 55,000 total rows in all tables combined.
> Where is the .udb file stored: main memory? an SD card? a flash card?
The .udb was on an SD card.
I tried the initial sync again, once to the SD card and once to main memory.
Results (in round numbers): to the SD card, 60 minutes; to main memory, 10
minutes.
If I just copy the .udb from the desktop to the SD card, it takes about 12
seconds.
> Are you downloading lots of DELETEs?
There are not active deletes. The timing is for the initial load from the
consolidated db.
The only activity at the .udb is to add rows at this point.
Thanks for the discussion.
Regards,
Carl
| |
| David Fishburn 2005-03-30, 9:43 am |
| "Carl Langren" < clangren_nospam@worl
dnet.att.net> wrote in
news:4234b9c8$1@foru
ms-2-dub of sybase.public.sqlanywhere.mobilink:
Since we have identified this as an issue with UL and the performance of
an SD card, and nothing to do with MobiLink, I will cross post this to
the UL newsgroup to see if there are any further ideas from that front.
Dave
> Dear Greg,
>
> Thanks for the response.
> Answers below.
>
>
> The largest tables are 19,000 rows; 12,000 rows; 7,000 rows; and 6,000
> rows respectively.
> Almost all other tables are under 500, many under 100.
> A total of 117 tables.
> About 55,000 total rows in all tables combined.
>
>
> The .udb was on an SD card.
>
> I tried the initial sync again, once to the SD card and once to main
> memory. Results (in round numbers): to the SD card, 60 minutes; to
> main memory, 10 minutes.
> If I just copy the .udb from the desktop to the SD card, it takes
> about 12 seconds.
>
>
> There are not active deletes. The timing is for the initial load from
> the consolidated db.
> The only activity at the .udb is to add rows at this point.
>
> Thanks for the discussion.
>
> Regards,
> Carl
>
>
>
| |
| Carl Langren 2005-03-30, 9:43 am |
| Thanks David!
"David Fishburn" <fishburn_spam@off.ianywhere.com> wrote in message
news:Xns96199F5411A4
1fishburnsybasecom@1
27.0.0.1...
> "Carl Langren" < clangren_nospam@worl
dnet.att.net> wrote in
> news:4234b9c8$1@foru
ms-2-dub of sybase.public.sqlanywhere.mobilink:
>
> Since we have identified this as an issue with UL and the performance of
> an SD card, and nothing to do with MobiLink, I will cross post this to
> the UL newsgroup to see if there are any further ideas from that front.
>
> Dave
>
>
| |
| Carl Langren 2005-03-30, 9:43 am |
| As background to this post which was crossed over from the MobiLink
forum.....
ORIGINAL POST:
--------------------------------------------
I am running v9.0.1(1899); XP Pro SP2; SQL Server 2K with all SP current.
Environment is Desktop PC with SQL Server sync via MobiLink (running on the
same box )to an IPaq 5550 running Ultralite.
We have approximately 2MB of data transferred to the PDA during sync
(according to the sync progress byte counter) and end up with a 5MB .udb on
the PDA following successful completion of an initial sync.
Initial sync is taking 50 minutes to an hour. This is true via
USB/Activesync or Wireless TCP/IP. The first 1MB takes about 3 minutes, and
then things just get slower. With no other apps running or loaded and the
timing is not impacted.
Would these times be considered normal?
If not, some input on tuning would be most appreciated.
Here is our MobiLink startup: dbmlsrv9.exe -c "dsn=PIDS_SQL" -zu- -zp -u
5m -d 5m -x tcpip(host=192.168.10. 163;port=2439;keep_a
live=1)
REPLY TO QUESTIONS RAISED BY GREG FENTON:
-----------------------------------------------------------
> I would not expect a 2MB download to take 50 minutes, but there are a
> number of things that could be causing the slow down.
>
> Do you know roughly how many rows you are downloading in total?
> The maximum number of rows downloaded per table?
The largest tables are 19,000 rows; 12,000 rows; 7,000 rows; and 6,000 rows
respectively.
Almost all other tables are under 500, many under 100.
A total of 117 tables.
About 55,000 total rows in all tables combined.
> Where is the .udb file stored: main memory? an SD card? a flash card?
The .udb was on an SD card.
I tried the initial sync again, once to the SD card and once to main memory.
Results (in round numbers): to the SD card, 60 minutes; to main memory, 10
minutes.
If I just copy the .udb from the desktop to the SD card, it takes about 12
seconds.
> Are you downloading lots of DELETEs?
There are not active deletes. The timing is for the initial load from the
consolidated db.
The only activity at the .udb is to add rows at this point.
POST CROSSED BY DAVID FISHBURN AS NOT A MOBILINK ISSUE.
Your input would be most appreciated!
Thanks,
Carl Langren
| |
| Greg Fenton 2005-03-30, 9:43 am |
| Carl Langren wrote:
> As background to this post which was crossed over from the MobiLink
> forum.....
>
Please do not reply to this. The thread has been moved to the UltraLite
forum.
greg.fenton
--
Greg Fenton
Consultant, Solution Services, iAnywhere Solutions
--------
Visit the iAnywhere Solutions Developer Community
Whitepapers, TechDocs, Downloads
http://www.ianywhere.com/developer/
| |
| Tim McClements 2005-03-30, 9:43 am |
| Which programming language/interface are you using for UltraLite?
The download performance will be dependent on your schema (indexes in
particular) as well as the row data. Can you provide your UltraLite database
schema, perhaps indicating the downloaded row count for each table? (But I
should say that if this issue becomes complex enough, we won't be able to
handle it in the newsgroup and you'll have to create a tech support case.)
Indexing operations can become slower as the table fills, depending on the
insert order relative to the index order. If you report the tableIndex field
from the status structure in the observer function, you maybe be able to
determine if the slowdown occurs within a table, or between tables. (I
assume you're watching the byte counts in a dialog. Maybe you can add the
tableIndex to the dialog as well.)
(That an SD card is 5-6 times slower than main memory in itself is not
surprising.)
- Tim
"Carl Langren" < clangren_nospam@worl
dnet.att.net> wrote in message
news:4236f2d0@forums
-1-dub...
> As background to this post which was crossed over from the MobiLink
> forum.....
>
> ORIGINAL POST:
> --------------------------------------------
> I am running v9.0.1(1899); XP Pro SP2; SQL Server 2K with all SP current.
>
> Environment is Desktop PC with SQL Server sync via MobiLink (running on
> the
> same box )to an IPaq 5550 running Ultralite.
>
> We have approximately 2MB of data transferred to the PDA during sync
> (according to the sync progress byte counter) and end up with a 5MB .udb
> on
> the PDA following successful completion of an initial sync.
>
> Initial sync is taking 50 minutes to an hour. This is true via
> USB/Activesync or Wireless TCP/IP. The first 1MB takes about 3 minutes,
> and
> then things just get slower. With no other apps running or loaded and the
> timing is not impacted.
>
> Would these times be considered normal?
>
> If not, some input on tuning would be most appreciated.
>
> Here is our MobiLink startup: dbmlsrv9.exe -c "dsn=PIDS_SQL" -zu- -zp -u
> 5m -d 5m -x tcpip(host=192.168.10. 163;port=2439;keep_a
live=1)
>
> REPLY TO QUESTIONS RAISED BY GREG FENTON:
> -----------------------------------------------------------
>
> The largest tables are 19,000 rows; 12,000 rows; 7,000 rows; and 6,000
> rows
> respectively.
> Almost all other tables are under 500, many under 100.
> A total of 117 tables.
> About 55,000 total rows in all tables combined.
>
>
> The .udb was on an SD card.
>
> I tried the initial sync again, once to the SD card and once to main
> memory.
> Results (in round numbers): to the SD card, 60 minutes; to main memory, 10
> minutes.
> If I just copy the .udb from the desktop to the SD card, it takes about 12
> seconds.
>
>
> There are not active deletes. The timing is for the initial load from the
> consolidated db.
> The only activity at the .udb is to add rows at this point.
>
> POST CROSSED BY DAVID FISHBURN AS NOT A MOBILINK ISSUE.
>
> Your input would be most appreciated!
>
> Thanks,
> Carl Langren
>
| |
| Carl Langren 2005-03-30, 9:43 am |
| Dear Tim,
Thanks for the response.
We are using AppForge/MobileVB
I could certainly provide the schema and row counts, but would prefer not to
post it to the forum.
We do have many indexes on our tables........
I believe (since we are using identity columns and this is on initial load)
that virtually all loads are in the order of the primary index.
You are correct, I have been just watching the byte count in a dialog.
I am not totally "with you" on the observer function, but I think you are
telling me to create some output (debug or otherwise) that reports the
ulsyncstatus as it goes through the various steps of the sync for each
table? and see what the processing time is on the creation of the indexes??
I didn't think about it before, but will there be any beneficial info re:
diagnosis from MobiLink Monitor?
If I am getting your drift, the pattern that I found initially confusing
(load 1 meg in 4-6 minutes and the 2nd meg takes an hour), may be caused by
the larger tables with more indexes loading later?? (Which I am not sure is
the case but I will know after I do the ulsyncstatus monitoring.....)
Thanks very much for the discussion.
Regards,
Carl Langren
"Tim McClements" < mcclemenXnospam@syba
se.com> wrote in message
news:4237612f$1@foru
ms-1-dub...
> Which programming language/interface are you using for UltraLite?
>
> The download performance will be dependent on your schema (indexes in
> particular) as well as the row data. Can you provide your UltraLite
> database schema, perhaps indicating the downloaded row count for each
> table? (But I should say that if this issue becomes complex enough, we
> won't be able to handle it in the newsgroup and you'll have to create a
> tech support case.)
>
> Indexing operations can become slower as the table fills, depending on the
> insert order relative to the index order. If you report the tableIndex
> field from the status structure in the observer function, you maybe be
> able to determine if the slowdown occurs within a table, or between
> tables. (I assume you're watching the byte counts in a dialog. Maybe you
> can add the tableIndex to the dialog as well.)
>
> (That an SD card is 5-6 times slower than main memory in itself is not
> surprising.)
>
> - Tim
>
> "Carl Langren" < clangren_nospam@worl
dnet.att.net> wrote in message
> news:4236f2d0@forums
-1-dub...
>
>
| |
| Paul Fast 2005-03-30, 9:43 am |
| The "observer function" is C++ API speak for the synchronization events on
the connection object (in AppForge). In other words, look at your
connection's OnTableChange event implementation and see if it's one
particular table that's really slow. If all of UltraLite tables are being
synchronized (i.e. you aren't a subset and you have no _nosync tables) then
I *think* you can take the newTableIndex parameter of OnTableChange(), add 1
to it and use that number as the parameter to ULConnection.GetTableName().
However, do *not* make this call DURING synchronization and do not rely on
this formula to give you the proper table ID in all circumstances.
Note that declaring your connection WithEvents and handling the
synchronization events will make your overall synchronization time slower
because synchronization is "interrupted" while UltraLite calls back into
your VB code.
-Paul
"Carl Langren" < clangren_nospam@worl
dnet.att.net> wrote in message
news:423b07e0$1@foru
ms-1-dub...
> Dear Tim,
>
> Thanks for the response.
> We are using AppForge/MobileVB
> I could certainly provide the schema and row counts, but would prefer not
> to post it to the forum.
> We do have many indexes on our tables........
> I believe (since we are using identity columns and this is on initial
> load) that virtually all loads are in the order of the primary index.
> You are correct, I have been just watching the byte count in a dialog.
>
> I am not totally "with you" on the observer function, but I think you are
> telling me to create some output (debug or otherwise) that reports the
> ulsyncstatus as it goes through the various steps of the sync for each
> table? and see what the processing time is on the creation of the
> indexes??
>
> I didn't think about it before, but will there be any beneficial info re:
> diagnosis from MobiLink Monitor?
>
> If I am getting your drift, the pattern that I found initially confusing
> (load 1 meg in 4-6 minutes and the 2nd meg takes an hour), may be caused
> by the larger tables with more indexes loading later?? (Which I am not
> sure is the case but I will know after I do the ulsyncstatus
> monitoring.....)
>
> Thanks very much for the discussion.
>
> Regards,
> Carl Langren
>
> "Tim McClements" < mcclemenXnospam@syba
se.com> wrote in message
> news:4237612f$1@foru
ms-1-dub...
>
>
|
|
|
|
|