Query planning using a maxdiff histogram

   
   

Systems and methods create and maintain a maxdiff histogram for use in determining query costs. One aspect of the system is a data structure that provides fields that can be used to accurately represent a distribution of data regardless of the uniformity or lack thereof of the data. The fields of the data structure represent buckets in the histogram. The fields include a range_Hi_Key field indicating the upper bound for values represented by the bucket. The range_Hi_Key field is also the most frequently occurring value in the bucket. In addition, the fields include a cardEQ field representing the count of the most frequently occurring value, a cardLT field, which is the count of the values in the bucket that are less than the range_Hi_Key field, a LTDistinct field, which is a count of the number of distinct values represented by the bucket, and an LTDensity field, which is an average count for each of the attribute values in the bucket that are not the range_Hi_Key value. A further aspect is a method that creates and maintains the maxdiff histogram data structure. The method starts by creating a list of unused buckets. An input stream of attribute values is sorted and the following acts are performed for each value. If the new value is the same as the previous value, the cardEQ field is incremented. If not, the method checks to see if the histogram is full. If a bucket is available, it is allocated and the bucket fields are initialized. If a bucket is not available, the two buckets that have the least variance between them are merged into one bucket, and the freed bucket is made available for the newly read input value. Whenever a new bucket is created or altered, the variance between the bucket and its neighbors is recalculated.

De systemen en de methodes leiden en handhaven tot een maxdiffhistogram voor gebruik in het bepalen van vraagkosten. Één aspect van het systeem is een gegevensstructuur die gebieden verstrekt die kunnen worden gebruikt om een verspreiding van gegevens ongeacht de uniformiteit of het gebrek daarvan aan de gegevens nauwkeurig te vertegenwoordigen. De gebieden van de gegevensstructuur vertegenwoordigen emmers in de histogram. De gebieden omvatten een range_Hi_Key- gebied dat op het bovenleer verbindend voor waarden wijst die door de emmer worden vertegenwoordigd. Het range_Hi_Key- gebied is ook de vaakst voorkomende waarde in de emmer. Bovendien omvatten de gebieden een cardEQ- gebied de telling van de vaakst voorkomende waarde vertegenwoordigen, een cardLT- gebied, dat de telling van de waarden in de emmer zijn die minder dan het range_Hi_Key- gebied, een LTDistinct- gebied zijn, dat een telling van het aantal verschillende waarden die door de emmer worden vertegenwoordigd is, en een LTDensity- gebied die, dat een gemiddelde telling voor elk van de attributenwaarden in de emmer is die niet de waarde range_Hi_Key zijn. Een verder aspect is een methode die leidt en tot de de gegevensstructuur van de maxdiffhistogram handhaaft. De methode begint door een lijst van ongebruikte emmers te creëren. Een inputstroom van attributenwaarden wordt gesorteerd en de volgende handelingen worden uitgevoerd voor elke waarde. Als de nieuwe waarde het zelfde als de vorige waarde is, wordt het cardEQ- gebied verhoogd. Als niet, controleert de methode om te zien of is de histogram volledig. Als een emmer beschikbaar is, wordt het toegewezen en de emmergebieden worden geïnitialiseerd. Als een emmer niet beschikbaar is, worden de twee emmers die het minste verschil tussen hen hebben samengevoegd in één emmer, en de bevrijde emmer wordt ter beschikking gesteld voor de onlangs gelezen inputwaarde. Wanneer een nieuwe emmer wordt gecreeerd of veranderd, wordt het verschil tussen de emmer en zijn buren opnieuw berekend.

 
Web www.patentalert.com

< Streaming information appliance with circular buffer for receiving and selectively reading blocks of streaming information

< Server architecture with detection and recovery of failed out-of-process application

> Relative range camera calibration

> Performance logging solution

~ 00106