Tom Krueger is a Microsoftie and spends a lot of his time dreaming up and working on Smart Clients. He was a very quirky and informative post on the Fastest way to build 10,000 records on a Device?

  1. Tie one end of a piece of string to the WiFi antenna, if your device has one, and tie the other end to a tin can. Enumerate the 10,000 records on your desktop computer and verbally dictate each record into the tin can.
    • Performance: slow;
      Success rate: zero.
      Implementation: easy peasy lemon squeezy.
  2. Purchase a flock of carrier pigeons, 10,000 in number. Hand-write each record onto a piece of paper and attach to the bird. Aim the bird at the device and release.
    • Performance: slow:
      Success rate: zero.
      Implementation: possibly very messy.
  3. Move to SQL Server. RDA and Merge Replication are your friends.
    • Performance: good!
      Success rate: >1,000,000,000 pigeons.
      Implementation: well documented.
  4. Hire 10,000 people and get them to memorise one record each. Get them to follow the device wherever it goes.
    • Performance: In theory, should outperform Oracle for record access. In reality, you’re statistically likely to get a few “slow” records
      Success rate: Depends on the demographics of your recordset.
      Implementation: costly, just like Oracle :)
  5. Populate the DataSet on the server and transmit as a DataSet object using Web Services ().
    • Performance: suffers from a serialisation/serialisation overhead which is costly with 10,000 records.
      Success rate: Jackpot, baby!
      Implementation: piece of cake.
  6. Re-architect your solution. No one should need 10,000 records on a device. Don’t even think about loading that into a ListView either :)