martinc

Mostly about ESENT, the database engine.

Posts
  • martinc

    Code Pages versus Locales/Locale Names

    • 0 Comments
    The question recently came up on why someone's index range on a text column wasn't working properly. It turns out they forgot to set the Code Page on the column, but they were still storing Unicode data in the column. So the question came up about...
  • martinc

    Using `esentutl.exe /vss` to examine an in-use database

    • 0 Comments
    This feature has been present in Exchange with eseutil.exe, but now it will be part of Windows 10 esentutl.exe. Normally, when we try to access ESE database files, we get ACCESS_DENIED, because the ESE engine opens files exclusively. VSS (Volume...
  • martinc

    Sparse Files: ESE can now give space back to the file system

    • 0 Comments
    A long-standing limitation of ESE is that database files never shrink, even after deleting substantial amounts of the data. While the space is freed and is re-usable within the database, the on-disk size does not change. The main limitation is that the...
  • martinc

    cbKeyMost when indexing needs additional overhead

    • 0 Comments
    I recently helped someone track down why they were getting JET_errKeyTruncated. They declared an index over a JET_coltypLongBinary column with cbMax = 0x20c, and when they created the index, they specified cbKeyMost = 0x20c, and also passed in VistaGrbits...
  • martinc

    ManagedEsent is in Windows 8.1 and on MSDN.

    • 5 Comments
    I'm super excited to share this: ManagedEsent is documented on MSDN: http://msdn.microsoft.com/en-us/library/windows/desktop/dn375980.aspx And it's part of Windows 8.1. No need to download from CodePlex! Here's what's on my 8.1 machine: C...
  • martinc

    Cost of JetIntersectIndexes

    • 0 Comments
    We recently had a question about JetIntersectIndexes()'s performance. Here's what Brett wrote up: Intersect is to save disk IO at the cost of CPU time. The cost of intersect indices, is the cost of iterating over ALL the index ranges (choice...
  • martinc

    JetGetObjectInfo() does not get record count by default

    • 0 Comments
    We recently had the following question: I am trying to get the space occupied by each table that we have by using JetGetObjectInfo. The api succeeds but it returns 0 for both number of cRecords and cPages.   JET_OBJECTINFO tableInfo = {0};...
  • martinc

    Introduction to Indices

    • 0 Comments
    ESE is an ISAM engine -- Indexed Sequential Access Method. Wikipedia has an article on ISAMs: http://en.wikipedia.org/wiki/ISAM . ESE allows you to insert data in a structured manner, with data types such as integer or strings. Then you need to be...
  • martinc

    Sharp Corner: Close a table after creating it

    • 0 Comments
    The ESENT API has existed for a while, so there are quite a few oddities to it. After creating a database with ESENT, you need to close the returned JET_TABLEID. The original way to create a usable table was to create the table with JetCreateTable...
  • martinc

    ManagedEsent is Metro Compliant

    • 0 Comments
    I'm inaugurating this blog with an announcement: ManagedEsent is Metro Compliant. What does this mean to you? If you write a Metro program in C#, you can grab ManagedEsent from CodePlex ( http://managedesent.codeplex.com ) and you can use your favourite...
Page 1 of 1 (10 items)