Archive for the ‘database’ Category

New features and improvements now available

Friday, December 3rd, 2010

The latest versions of StoreIt and StoreItPro (2.7.0) are have been released. This update is mainly targetted at StoreItPro although there are some improvements aimed at the standard edition as well.

Both StoreIt and StoreItPro benefit from:

  • can set the font size for item detail screen (go to the Settings screen to change).
  • new ‘Group Title’ field type that allows you to give a title to a group of fields.
  • can now save nested items directly rather than needing to go back to the parent item.

In addition, StoreItPro has the following changes:

  • can now email selected categories as backups or text files (go to StoreIt Link screen and tap send icon).
  • When sharing a category it is now possible to lock the category with an admin password to stop other users from changing the category definition. (Enter password from Settings screen and then a Edit category.)
  • Can now link between categories without applying a filter.

The latest versions of StoreIt and StoreItPro are available immediately from the AppStore.

New updates to StoreIt and StoreItPro

Thursday, November 18th, 2010

The latest updates of the StoreIt apps 2.6.0 include better number formatting support and improved support for multi-tasking.

  • support for Plain number format (displays numbers as entered, including leading zeros and without thousand separators)
  • field names are now displayed over more lines
  • percentage number format now displays decimal places
  • multi-tasking support for protected categories – you will now be asked for password on re-entry to application

In addition for StoreItPro it is now possible to save a backup of your database while your on the move and away from WiFi by sending it as an email.

As well as these functional changes, a number of reported bugs have been fixed.

The latest versions of StoreIt and StoreItPro are available immediately from the AppStore.

New Releases of StoreIt Applications

Tuesday, October 5th, 2010

We are pleased to announce the latest releases of StoreIt and StoreItPro. Update 2.5 includes a couple of the most requested features to make better use of the screen space on the item view so you can see more information at once.

  • The record fields are all grouped together with the field name on the same line as the value instead of the field values being separated by the field names.
  • You can create your own field groupings by editing fields and setting the ‘Grouping Field’ attribute. This will create a break after the grouped field so it is possible to group related fields together.
  • The item view will also preview multiple lines (up to 10) of a text or note field where it is too long to fit within a single lines. So it is no longer necessary to tap through to see the longer details.

The latest versions of StoreIt and StoreItPro is available immediately from the AppStore.

New improvements in StoreIt and StoreItPro

Wednesday, November 18th, 2009

We are pleased to announce the latest releases of StoreIt and StoreItPro. Update 2.4.0 includes the following functionality.

  • Auto-capitalization of text fields with name or sentence capitalization formats.
  • Percentage formatting for number fields.
  • Long, medium and short formatting for dates.
  • More lenient parsing of dates and numbers when importing text files.
  • Perform full database back up and restore in a single operation.

In addition, StoreItPro includes the following enhancements.

  • Support for emailing the contents of a record.
  • The full database back up enables linked categories to be saved consistently.

In addition, reported bugs have been fixed.

The latest versions of StoreIt and StoreItPro is available immediately from the AppStore.

StoreItPro now supports links between categories

Thursday, August 20th, 2009

We are pleased to announce the release of StoreItPro version 2.3. This release has focused on adding the ability to link between categories in various different ways.

- Use a category to populate a pick list for a field.
- Use a category to auto-fill the values for a field.
- Or follow a link between categories to browse through linked category details.

In addition to these changes, the following other improvements have been made:

- Additional filters for starts/ends with text and checking if value is set or not.
- Text based operators for joining text together and extracting values from text.
- Date based operators for adding different periods to dates or times and calculating the next anniversary of a date.

The latest version of StoreItPro is available immediately from the AppStore or you can read more on www.database4iphone.com.

In parallel with this release of StoreItPro, a new release of StoreIt standard edition has been made that includes the additional filtering criteria on text and whether values are set or not, as well as including reported bug fixes. This update is also available from the AppStore.

SQLConsole adds support landscape keyboard

Wednesday, July 8th, 2009

The latest release (1.2.0) of SQLite Database Console has added support for rotating the device into landscape mode. You now have the full benefit of the landscape keyboard when typing those long SQL commands.

You can find out more about SQLite Database Console on www.database4iphone.com or SQLite Database Console is available now on the iPhone AppStore.

New Updates for StoreIt and StoreItPro

Tuesday, July 7th, 2009

We are pleased to announce the release of StoreIt and StoreItPro versions 2.2.0. This release includes some of the most requested improvements from our users. These focus on category management and include:

  • Support for password protecting a category.
  • Ability to create categories from existing categories or using pre-built and custom templates.
  • Numerous pre-built templates are included to enable a variety of applications.
  • The main category list can now be sorted.
  • In addition to category name, categories can be sorted/grouped using a colored grouping tag.
  • Summary counts and totals can be displayed in the category list and in category views.

In addition to these changes, some other general improvements have been made.

  • Contains/Not contains has been added as a filter condition for searching text.
  • Sort in reverse order is supported.
  • Multiple selections can be made from pre-defined text value lists.
  • Other minor usability and bug fixes.

StoreIt and StoreItPro updates are available immediately from the iPhone AppStore.

SQL on the iPhone

Wednesday, May 20th, 2009

During development of StoreIt, it is sometimes nice to be able to test SQL running directly on an iPhone without going through the process of building the code into the application. This gives a good idea of performance which you wouldn’t get running the same SQL off the device. For this purpose, we built a little tool for creating and querying a SQLite database on an iPhone or iPod Touch. We are pleased to announce that we have now made this application available through the AppStore.

SQLite Database Console supports the following features:

  • SQL console providing access to the SQL language supported by the SQLite database platform.
  • Access to all recently executed statements for easy re-execution.
  • Recently executed statements saved between sessions.
  • Access to the SQLite SQL documentation within the application meaning you can easily switch between the documentation and SQL console when building your queries.
  • Connect to the SQLConsole from your desktop machine over Wi-Fi to enable backup and restore of database.
  • Use database SQLConsole connection to load SQLite databases created on other machines.

You can find out more about SQLite Database Console on www.database4iphone.com or SQLite Database Console is available now on the iPhone AppStore.

iPhone Business Forms with StoreIt Professional Edition

Wednesday, May 6th, 2009

Building on the success of the StoreIt Database Application, we are pleased to announce the release of StoreItPro.

We had received a number of requests for functionality that we felt would take StoreIt beyond it’s original vision of providing an easy to use app for storing and retrieving data on the move. People wanted to use it across their business, which meant more control was required over how data was entered into the database. As a result we have built StoreItPro, a powerful forms and mobile database tool for the iPhone and iPod Touch.

Whether for individual use or sharing across your business, with the addition of powerful features such as field constraints, conditional fields and calculations across fields and records, StoreIt Professional Edition delivers a tool for building and deploying business forms applications that help you to run your business whereever you are.

Read more about StoreItPro at www.database4iphone.com or on the iPhone App Store.

We are also pleased to announce the release of our latest update for our standard edition of StoreIt. Listening to user feedback, StoreIt Update 2.1 includes the following usability enhancements and bug fixes.

  • You can now change the order of fields after a category has been created.
  • It is now possible to select a view without having to enter the edit view screen.
  • Note fields are displayed using the full screen when keyboard is not visible.
  • Import/export to text file supports newlines within quoted strings.
  • Auto-capitalization of Category and Field names.
  • Fixed display of duplicate and missing records in item lists for large data sets.
  • Various fixes to handling of view and filter definitions.

This update is available immediately from the iPhone App Store or you can read more at www.database4iphone.com.

Read a comparison of both editions of StoreIt in our FAQ.

Database Query Plan Analysis in Java Applications

Friday, November 7th, 2008

Analyzing the query plans that are being executed by a slow performing database-centric Java application is often key to identifying the causes of the poor performance in the data tier. Capturing these plans however can sometimes be hard, either because the SQL is programmatically constructed, generated by a third party data access layer, or it’s hard to tie in the SQL that can be captured on the database side with the executing Java program. JDBC Tools provides support for capturing query plans at runtime from within any Java program.

JDBC Tools is an open source framework for placing monitoring code within the JDBC layer of an application. It can support custom monitoring plugins, but comes with standard Logger and Query Plan plugins. In this article we will take a look at the Query Planning plugin and see how it can be used to help diagnose application performance issues.

First you need to configure JDBC Tools and the query plan plugin module to work with your database. This is done by editing the jdbc-tools.properties file that comes with the JDBC Tools distribution. Here is an example of the key elements of these properties configured for query planning purposes.

jdbc.listener.classes=com.facdatum.jdbc.logger.JDBCLogger, \
com.facdatum.jdbc.planner.QueryPlanListener
driver.delegate=com.microsoft.sqlserver.jdbc.SQLServerDriver
driver.path=c:\\home\\user\\tools\\jdbc\\sqljdbc.jar
driver.class=com.microsoft.sqlserver.jdbc.SQLServerDriver
driver.url=jdbc:sqlserver://localhost:50679
driver.user=sa
driver.password=sa

If you ensure that this properties file and the supplied jdbc-tools.jar file are on your application’s CLASSPATH then all you need to do to activate query planning from your application is to replace the driver name you use in your application with com.facdatum.jdbc.listener.driver.DriverListener and add listener: after jdbc: in your URL connection string (e.g. jdbc:listener://localhost:50679). Run your application as normal and you will notice a jdbc-logging.log file gets produced.

Currently all calls and exits from the JDBC API are also getting logged. If you do not want this then it can be switched off by changing the log.levels entry in the properties file.

log.levels=

Or, if you want to control which parts of your application get logged then you can configure the ListenerCallFilter plugin. How to do this is explained in the JDBC Tools usage documentation.

The query plans appear in the log file as PLAN messages, where the query plan lines form the message body with each line separated by ^ symbols. These can be converted into a more readable multi-line form using the tools in your favourite editor or tools from your operating system. Here’s a sed script that does the job.

grep PLAN jdbc-logging.log | sed 's/\^/\n/g'

If the query plan contains mutliple columns then these will be bar (|) separated so can be nicely formatted in a spreadsheet.

Reviewing the generated plans you will notice that a single plan is generated for each unique SQL statement executed. Multiple executions do not generate multiple query plans. If you want more control over when plans are generated then you can use the ListenerDurationFilter. This can control output based on the execution time of the SQL queries. Here is an example configuration.

jdbc.listener.classes=com.facdatum.jdbc.logger.JDBCLogger, \
com.facdatum.jdbc.listener.filters.ListenerDurationFilter, \
com.facdatum.jdbc.planner.QueryPlanListener
jdbc.duration.filter.limit=10000
jdbc.duration.filter.change=0.25
jdbc.planner.repeat=true

You’ll see we’ve added the filter to the jdbc.listener.class property and configured some new properties. Other properties remain the same.

  • The jdbc.duration.filter.limit property specifies a duration in milliseconds under which the query plan generation is filtered out.
  • jdbc.duration.filter.change specifies that if the duration of a SQL query changes by the specified percentage then generate the query plan again. So in this example, queries that take over 10 seconds to execute and whose performance has degraded by 25% from the first run will have their query plans generated.
  • We’ve also set the jdbc.planner.repeat to true so SQL that gets passed through the percentage change filter have a query plan generated.

Finally, it is also possible to pre-seed some execution time limits for specific SQL statements.

jdbc.duration.store.filepath=/home/user/sqltimings.store

In this example, the sqltimings.store file contains colon(:) separated <sql>:<duration> pairs which specify initial limits for query execution times.

select * from northwind..employees where FirstName = ?:200

We have seen that with JDBC Tools and it’s query planning capabilities it is possible to straightforwardly capture SQL execution plans to enable quick identification of database performance problems. It can also be as an early warning system to keep a record of the query plans that an application is using over time or to capture the right information when performance has degraded.

JDBC Tools can work with any database platform that is accessed through a JDBC driver, however the query planning capabilties currently support Oracle, Microsoft SQL Server and MySQL. The latest version of JDBC Tools can be downloaded from SourceForge or you can find out more information from http://jdbc-tools.sourceforge.net.