Database berlin. Used relations are plz10, plz10_a and plz10_b, which are as followed definied: let plz10 = plz feed ten feed product extend[Key: randint(99999) sortby[Key asc] remove[Key] consume let plz10_a = plz feed ten feed product extend[Key: randint(99999), Zahl1: 1, Zahl2: 2, Wort1: .Ort] sortby[Key asc] remove[Key] consume let plz10_b = plz feed ten feed product extend[Key: randint(99999), Zahl1: 1, Zahl2: 2, Wort1: .Ort, Zahl3: 3, Zahl4: 4, Wort2: .Ort] sortby[Key asc] remove[Key] consume Following constants should be calculated: - ms per tuple - ms per byte - ms per k 1. Constant uksmallest per tuple: - it is compared elapsed time with the same k (=200) and different numbers of attributes, respectevily with 3 (average elapsed time = 75 seconds), 6 (average elapsed time = 96,25 seconds), and 9 (average elapsed time = 118,75 seconds) attributes. Used queries are: query plz10 feed ksmallest [200; PLZ] count, query plz10_a feed ksmallest [200; PLZ] count, query plz10_b feed ksmallest [200; PLZ] count - calculations show that per each 3 attributes circa 21.88 seconds are needed, and 51,13 seconds without attributes only for ksmallest itself - from these results and that number of tuples is 412670 we can determine the constant per tuple: 51,13/412670 = 0.0001287348 2. Constant vksmallest per byte: - the same test and results like for calculation of the previuos constant should be considered - each tuple has 25 bytes, it means that per query is 412670*25 = 10316750 - it results in time per byte: 21,88/10316750 = 0.0000021203 3. Constant wksmallest per k: - compare elapsed times with the different k (200, 200000, 400000, 600000) and the same relation (with 3 attributes). Used queries are: query plz10 feed ksmallest [200; PLZ] count, query plz10 feed ksmallest [20000; PLZ] count, query plz10 feed ksmallest [40000; PLZ] count, query plz10 feed ksmallest [60000; PLZ] count - from the results the average time difference is calculated (545,83) and the difference in k is 20000 - it gives time per k = 545,83/20000 = 0.0272916667 and from that time per k and per tuple is: 0.0272916667/412670 = 0.0000000661 4. Comments: - the operator ksmallest is used normally for not very large k (<120000). In that cases the calculations are not exact, because with larger k the relation between k and time ist not linear any more.