Patent application number | Description | Published |
20090292711 | Constraints With Hidden Rows in a Database - In an embodiment, a constraint is created for a database table. The constraint specifies a condition for a first column in the database table and an action. The action specifies whether data that violates the condition is allowed to be stored in the first column. A value and a specification of a second column in the database table are received from a data source. If the second column is identical to the first column, the value violates the condition, and the action specifies that data that violates the condition is allowed to be stored, the value is stored in a row in the database, the row is marked as hidden, and an identification of the constraint that was violated is stored in the row. A query does not return the row that is marked as hidden. | 11-26-2009 |
20120023092 | Feedback Loop Between A Query Optimizer And A Cache Manager - Systems, methods and computer program products are disclosed for managing a database cache. In one embodiment, access to a data object stored in a database is monitored. A memory residency priority for the data object is determined, based on the access patterns. Further, an access plan is determined for a query, based on the memory residency priority. Access to the data object is also monitored when the access plan is executed, thereby providing a feedback loop between determining memory residency priorities and determining query access plans. | 01-26-2012 |
20120023138 | DELETING OBJECTS WITH GROUP AUTHORITY - In an embodiment, a command is received from a sender that requests deletion of an object. A determination is made whether the object specifies group authority and whether all of a plurality of members of the group authority have requested deletion of the object. If the object specifies group authority and all of the plurality of members of the group authority have requested deletion of the object, then the object is deleted. If the object specifies group authority and not all of the plurality of members of the group authority have requested deletion of the object, then an indication is saved in the group authority that the sender requested deletion of the object. If the object does not specify group authority, then the object is deleted. | 01-26-2012 |
20120096054 | READING ROWS FROM MEMORY PRIOR TO READING ROWS FROM SECONDARY STORAGE - In an embodiment, a first plurality of rows of a first table are read from memory in an order of page addresses of pages in the memory that comprise the first plurality of rows. First selected rows from the first plurality of rows that meet a query predicate are stored into a result set. After the reading the first plurality of rows in the order of the page addresses, a second plurality of rows of the first table are read from secondary storage, in an order of row identifiers of the second plurality of the rows in the first table. Second selected rows from the second plurality of rows that meet the query predicate are stored into the result set. | 04-19-2012 |
20120290588 | REORGANIZING DATABASE TABLES - Techniques are disclosed for reorganizing rows of a database table. In one embodiment, each row is associated with a respective row identifier. A mapping is provided that assigns a logical identifier to each row identifier. Each database index on the database table is configured to use the logical identifier rather than the row identifier. Accordingly, the rows of the database table may be reorganized without having to modify any database index on the database table. | 11-15-2012 |
20120310921 | IDENTIFYING IMPACT OF INSTALLING A DATABASE PATCH - Techniques are disclosed for identifying impact of a patch. One embodiment of the invention provides a DBMS that is configured to manage one or more databases. The DBMS may receive a request to evaluate a patch for the DBMS. The DBMS provides a first execution environment that is not based on the patch and a second execution environment that is based on the patch. For each query, the DBMS compares a first access plan with a second access plan, where the first access plan is generated from the first execution environment and the second access plan is generated from the second execution environment. The DBMS identifies one or more queries having differing access plans, based on the comparisons. | 12-06-2012 |
20130060752 | USING A PARTIALLY BUILT INDEX IN A COMPUTER DATABASE SYSTEM - A partially built index is used in a computer database system. When a database index is being built, or rebuilt, the database manager keeps track of the records processed using a relative row number (RRN) to track what part of the partially built index is complete. Queries are optimized by a query optimizer associated with the database manager that uses the portion of the index that is complete with reference to the RRN. The remainder of the database table beyond the RRN can be estimated or implemented using the completed data or can be determined by searching the relevant portion of the database table. | 03-07-2013 |
20130066850 | USING A PARTIALLY BUILT INDEX IN A COMPUTER DATABASE SYSTEM - A partially built index is used in a computer database system. When a database index is being built, or rebuilt, the database manager keeps track of the records processed using a relative row number (RRN) to track what part of the partially built index is complete. Queries are optimized by a query optimizer associated with the database manager that uses the portion of the index that is complete with reference to the RRN. The remainder of the database table beyond the RRN can be estimated or implemented using the completed data or can be determined by searching the relevant portion of the database table. | 03-14-2013 |
20130097599 | RESUMING EXECUTION OF AN EXECUTION PLAN IN A VIRTUAL MACHINE - In an embodiment, a query implemented by a first execution plan is executed at a first virtual machine. In response to a move command that requests a move of the first virtual machine from a first computer to a second computer while the first virtual machine is executing the query implemented by the first execution plan at the first computer, an attribute of a resource used by the executing at the first virtual machine is saved to memory at the first computer and a driver source used by the executing at the first virtual machine is saved to the memory at the first computer. In response to a command that requests starting a second virtual machine at the second computer, a determination is made whether the driver source that comprises the state of the partial execution of the first execution plan exists in memory of the second computer. | 04-18-2013 |
20130263117 | ALLOCATING RESOURCES TO VIRTUAL MACHINES VIA A WEIGHTED COST RATIO - In an embodiment, a plurality of estimates of costs of executing a plurality of respective queries is received from a plurality of respective virtual machines using a plurality of respective estimated resources allocated to the plurality of respective virtual machines. A selected virtual machine of the plurality of respective virtual machines is selected with a lowest weighted cost ratio, as compared to all other of the plurality of respective virtual machines. A source virtual machine is found with a lowest current resource usage. An amount of a resource to deallocate from the source virtual machine is calculated, which further comprises estimating the amount of the resource to deallocate that does not raise the lowest current resource usage over a maximum resource threshold. The amount of the resource from the source virtual machine is deallocated. The amount of the resource is allocated to the selected virtual machine. | 10-03-2013 |
20130304723 | CHANGING THE COMPRESSION LEVEL OF QUERY PLANS - In an embodiment, a query plan is compressed to data in a cache at a high compression level if a runtime of a query that the query plan implements is greater than a high time threshold. The query plan is compressed to the data in the cache at a medium compression level if the runtime of the query that the query plan implements is less than the high time threshold and greater than a low time threshold. The query plan is stored to the data in the cache at an uncompressed level if the runtime of the query that the query plan implements is less than the low time threshold. | 11-14-2013 |
20140046928 | QUERY PLANS WITH PARAMETER MARKERS IN PLACE OF OBJECT IDENTIFIERS - In an embodiment, a first query is received that specifies a first object identifier. If a first query plan exists that implements the first query, except that the first query plan does not comprise the first object identifier and instead comprises a parameter marker in place of the first object identifier, a first query execution plan is created from the first query plan, substituting the first object identifier in the first query execution plan for the parameter marker, and the first query execution plan is executed to read a first object identified by the first object identifier. | 02-13-2014 |
20140067942 | DETERMINING RECOMMENDED RECIPIENTS OF A COMMUNICATION - Embodiments of the invention include a method for determining recommended recipients of a communication. The method may include determining one or more attributes for one or more members of a first group. The method may also include receiving a first list of one or more recipients to receive a communication from a sender, wherein the recipients and the sender have a relationship based on the attributes. The method may also include determining a second list of one or more recipients to receive the communication, wherein the recipients of the second list are determined by whether the attributes of the first list recipients, the sender, and the first group members comply with a set of communication rules. | 03-06-2014 |
20140101131 | SWAPPING EXPECTED AND CANDIDATE AFFINITIES IN A QUERY PLAN CACHE - In an embodiment, a hit percentage of an expected affinity for a first query is calculated, wherein the expected affinity comprises a first address range in a query plan cache, a hit percentage of a candidate affinity for the first query is calculated, wherein the candidate affinity comprises a second address range in a query plan cache, and if the hit percentage of the candidate affinity is greater than the hit percentage of the expected affinity by more than a threshold amount, query plans in the candidate affinity are swapped with query plans in the expected affinity. | 04-10-2014 |
20140101132 | SWAPPING EXPECTED AND CANDIDATE AFFINITIES IN A QUERY PLAN CACHE - In an embodiment, a hit percentage of an expected affinity for a first query is calculated, wherein the expected affinity comprises a first address range in a query plan cache, a hit percentage of a candidate affinity for the first query is calculated, wherein the candidate affinity comprises a second address range in a query plan cache, and if the hit percentage of the candidate affinity is greater than the hit percentage of the expected affinity by more than a threshold amount, query plans in the candidate affinity are swapped with query plans in the expected affinity. | 04-10-2014 |
20140149386 | DATABASE ROW ACCESS CONTROL - A method, system, and computer program product to create an access control bit mapping (ACBM) structure for a corresponding database table are disclosed. The ACBM structure may include a relative record number (RRN) bit map. The RRN bit map may describe the access rights for a parameter. The computer-implemented method may maintain one or more statistics describing the RRN bit map. The method may additionally provide for updating the ACBM structure. The method may also provide for using the ACBM structure to process a database query. | 05-29-2014 |
20140149387 | DATABASE ROW ACCESS CONTROL - A method, system, and computer program product to create an access control bit mapping (ACBM) structure for a corresponding database table are disclosed. The ACBM structure may include a relative record number (RRN) bit map. The RRN bit map may describe the access rights for a parameter. The computer-implemented method may maintain one or more statistics describing the RRN bit map. The method may additionally provide for updating the ACBM structure. The method may also provide for using the ACBM structure to process a database query. | 05-29-2014 |
20140172905 | PERFORMING A FUNCTION ON ROWS OF DATA DETERMINED FROM TRANSITIVE RELATIONSHIPS BETWEEN COLUMNS - In an embodiment, a request is received that specifies a function and a specified key value. Rows from all tables that are accessible from the specified key value are transitively searched, wherein the transitively searching further comprises finding values in a plurality of pairs of columns, wherein found rows that are found by the transitively searching comprise values in a respective first column of the plurality of pairs of columns that satisfy a dependency relationship with values in a respective second column of the plurality of pairs of columns. The function is executed against only the found rows. | 06-19-2014 |
20140172908 | PERFORMING A FUNCTION ON ROWS OF DATA DETERMINED FROM TRANSITIVE RELATIONSHIPS BETWEEN COLUMNS - In an embodiment, a request is received that specifies a function and a specified key value. Rows from all tables that are accessible from the specified key value are transitively searched, wherein the transitively searching further comprises finding values in a plurality of pairs of columns, wherein found rows that are found by the transitively searching comprise values in a respective first column of the plurality of pairs of columns that satisfy a dependency relationship with values in a respective second column of the plurality of pairs of columns. The function is executed against only the found rows. | 06-19-2014 |
20140173599 | SENDING TASKS BETWEEN VIRTUAL MACHINES BASED ON EXPIRATION TIMES - In an embodiment, if an estimated time to perform a task by a first virtual machine is less than or equal to an expiration time of the first virtual machine minus the current time, the task is performed by the first virtual machine. If the estimated time to perform the task by the first virtual machine is greater than the expiration time of the first virtual machine minus the current time, a selected virtual machine is selected from among a plurality of virtual machines with a smallest estimated time to perform the task and a request to perform the task is sent to the selected virtual machine. | 06-19-2014 |
20140173614 | SENDING TASKS BETWEEN VIRTUAL MACHINES BASED ON EXPIRATION TIMES - In an embodiment, if an estimated time to perform a task by a first virtual machine is less than or equal to an expiration time of the first virtual machine minus the current time, the task is performed by the first virtual machine. If the estimated time to perform the task by the first virtual machine is greater than the expiration time of the first virtual machine minus the current time, a selected virtual machine is selected from among a plurality of virtual machines with a smallest estimated time to perform the task and a request to perform the task is sent to the selected virtual machine. | 06-19-2014 |
20140201132 | STORING A KEY VALUE TO A DELETED ROW BASED ON KEY RANGE DENSITY - In an embodiment, a first key value is received. A plurality of candidate rows are found in a database table, wherein the plurality of candidate rows are deleted. For the plurality of candidate rows, a plurality of respective impacts on a plurality of respective densities of each of other key values that are stored within a first key range of the first key value are calculated. For the plurality of candidate rows, a plurality of function results of the plurality of respective impacts on the plurality of respective densities are calculated. A selected candidate row of the plurality of candidate rows with a smallest function result of the plurality of function results of the plurality of respective impacts on the plurality of respective densities is selected. The first key value is stored to the selected candidate row. | 07-17-2014 |
20140324874 | MANAGEMENT OF A DATABASE SYSTEM - A method, system, and computer program product to manage a database is disclosed. The method, system, and computer program product may include structuring the database to have a first table having an index and a second table. A first key of the first table may be related to a second key of the second table. The method, system, and computer program product may include creating an entry locator in the index. The method, system, and computer program product may include maintaining an association between the second key of the second table and the entry locator of the index. | 10-30-2014 |
20140324876 | MANAGEMENT OF A DATABASE SYSTEM - A method, system, and computer program product to manage a database is disclosed. The method, system, and computer program product may include structuring the database to have a first table having an index and a second table. A first key of the first table may be related to a second key of the second table. The method, system, and computer program product may include creating an entry locator in the index. The method, system, and computer program product may include maintaining an association between the second key of the second table and the entry locator of the index. | 10-30-2014 |
20150088903 | DATA ALLOCATION CONTAINERS IN A PARTITIONED TABLE OF A COMPUTER DATABASE SYSTEM FOR HOLDING DATA BASED ON USAGE - An apparatus and method utilize partitioned database tables divided into data allocation containers (DACs) where data is placed into the DACs based on usage of the data in past queries. Records that are used most often are placed together and records that are used less often are placed together to improve database performance. In preferred embodiments, a database manager determines where to place data into the DACs based on how often the data is selected by a database query using a DAC selection ratio (DSR). The database manager may determine when to perform table maintenance to move rows of data to the appropriate DACs based on a timestamp or last check date (LCD) stored in the database. | 03-26-2015 |
20150088912 | DATA ALLOCATION CONTAINERS IN A PARTITIONED TABLE OF A COMPUTER DATABASE SYSTEM FOR HOLDING DATA BASED ON USAGE - An apparatus and method utilize partitioned database tables divided into data allocation containers (DACs) where data is placed into the DACs based on usage of the data in past queries. Records that are used most often are placed together and records that are used less often are placed together to improve database performance. In preferred embodiments, a database manager determines where to place data into the DACs based on how often the data is selected by a database query using a DAC selection ratio (DSR). The database manager may determine when to perform table maintenance to move rows of data to the appropriate DACs based on a timestamp or last check date (LCD) stored in the database. | 03-26-2015 |