/// <summary>
        /// Run multithreaded operations.
        /// </summary>
        /// <param name="worker">The worker to use.</param>
        private static void StressThreadTrx(PerfTestWorker worker)
        {
            const int NumRecords   = 50000;
            const int NumRetrieves = 100;

            worker.InsertRecordsWithSetColumn(NumRecords);
            worker.RepeatedlyRetrieveOneRecord(NumRetrieves);
            worker.RepeatedlyRetrieveOneRecordWithJetRetrieveColumns(NumRetrieves);
            worker.RepeatedlyRetrieveOneRecordWithRetrieveColumns(NumRetrieves);
            worker.RepeatedlyRetrieveOneRecordWithEnumColumns(NumRetrieves);
            worker.RetrieveAllRecords();

            worker.InsertRecordsWithSetColumns(NumRecords);
            worker.RepeatedlyRetrieveOneRecord(NumRetrieves);
            worker.RepeatedlyRetrieveOneRecordWithJetRetrieveColumns(NumRetrieves);
            worker.RepeatedlyRetrieveOneRecordWithRetrieveColumns(NumRetrieves);
            worker.RepeatedlyRetrieveOneRecordWithEnumColumns(NumRetrieves);
            worker.RetrieveAllRecords();
        }
        /// <summary>
        /// Insert some records and then retrieve them.
        /// </summary>
        private void InsertReadSeek()
        {
            const int NumRecords = 1000000;

            long[] keys = this.GetRandomKeys(NumRecords);

            using (var worker = new PerfTestWorker(this.instance, this.database))
            {
                TimeAction("Insert records", () => worker.InsertRecordsWithSetColumn(NumRecords / 2));
                TimeAction("Insert records with SetColumns", () => worker.InsertRecordsWithSetColumns(NumRecords / 2));
                TimeAction("Read one record", () => worker.RepeatedlyRetrieveOneRecord(NumRecords));
                TimeAction("Read one record with JetRetrieveColumns", () => worker.RepeatedlyRetrieveOneRecordWithJetRetrieveColumns(NumRecords));
                TimeAction("Read one record with RetrieveColumns", () => worker.RepeatedlyRetrieveOneRecordWithRetrieveColumns(NumRecords));
                TimeAction("Read one record with JetEnumerateColumns", () => worker.RepeatedlyRetrieveOneRecordWithEnumColumns(NumRecords));
                TimeAction("Read all records", worker.RetrieveAllRecords);
                TimeAction("Seek to all records", () => worker.SeekToAllRecords(keys));
            }
        }