Scimore Company Blog
Ramblings on databases

Documentation updated

March 26, 2008 17:15 by scimore

Documentation has just been updated, and is closed to be finished.

The 2.5 features likes t-sql features, identity, flow control and flush log have been added.

A new minor bug release of the server and manager. We added a feature to the manager, allowing for easier feedback.

And another exciting thing has just happendend yesterday morning. One of the developers reported that he finished the first alpha version of our Visual Studio 2008 integration.


Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: ,
Categories:
Actions: E-mail | Permalink | Comments (33) | Comment RSSRSS comment feed

Related posts

Comments

April 17. 2008 18:16

radioman

Sveiki,

10 balu tautieciam ;} Bandau panaudot Embedded serveri.

Aciu

radioman

April 17. 2008 23:53

radioman

..so can anyone show me how to put Image object to that data base?

radioman

April 18. 2008 07:57

radioman

internal enum ScimoreDbType


tai kaip man panaudot ta duomenu tipa, jeigu jis yra tik internal? ;{{{

radioman

April 18. 2008 10:07

Marius Slyzius

www.scimore.com/download/2.5/scimore.data.dll - pataisytas provideris.
Arba galima priskirti DbType, kuris konvertuos i ScimorDBType automatishkai.

Marius Slyzius

April 18. 2008 11:22

radioman

aciu, patestuosiu

radioman

April 18. 2008 11:56

scimore

www.scimore.com/.../...a-types-with-ScimoreDB.aspx

Cia yra topikas apie blobus su samplu. Tik reikia pasiimti nauja Scimore.Data.dll kaip buvo pamineta auksciau.

scimore

January 26. 2009 22:29

Saulius

Ispudinga ir dar free. Paskutiniu metu daug sedziu prie datareel bibliotekos, bet dabar reiks paziuret sita sprendima. Respectas Smile Tik idomu vienas dalykas, kaip cia yra kad nemokamas... nors is aprasymo atrodo labai galingai.

Saulius

January 27. 2009 10:13

scimore

Aciu uz susidomejima.

Del to, kad nemokama musu klausia daznai, kur cia kabliukas? Baze galite naudoti be jokiu apribojimu, tik uzsiregistruokite. Taip pat galite uzsiregistruoti bug.scimore.com ir siusti klaidas.
Jeigu kam reikia kokiu nors papildomu funkciju, mes galime tai implementuoti. Priklausomai nuo reikalavimu, tai gali buti mokama arba nemokama paslauga, panasiai kaip su SQLite.

ScimoreDB istakos prasidejo Lycos Europe. Dabar si firma subankrutavus, o mes perememe DB palaikyma ir tobulinima.

scimore

January 27. 2009 15:52

Saulius

Pabandziau is pradziu versija 3 beta. Norejau paleisti keleta testu, bet sukompiliavus (C# klientas) ir paleidus gaudavau errorus, kad neranda keleto failu tokiu kaip "sysredo.log". Ju bando ieskot kliento direktorijoje, nors jie randasi serverio install dir'e. Vien zo supratau kad su beta versija dar kazkas ne taip. Susidejau 2.5 ir tada kaip ir viskas gerai bet kazkodel veikia sql uzklausos tik tokios kurios formuojamos be parametru... su parameterais gaunamos klaidos: [DQL:unknown parameter: value].


Saulius

January 27. 2009 17:15

scimore

Kai connection stringa formuojate, vietoj "DATA SOURCE" panaudokite "HOST" arba "SERVER", nes priesingu atveju, provideris bandys atidaryti kaip embedded DB. Todel ir ismetama si klaida.

scimore

January 27. 2009 18:28

Saulius

Veikia dabar jau ir 3.0 versija, bet su parametrais vistiek neina... (klaida [DQL:unknown parameter: value]) Tad atlikau testa formuodamas uzklausa kaip string'a (kas yra negerai, bet veikia). Rezultatus lyginau su sql server 2005 ir 2008. Gavosi, kad ScimorDB uz sql server 2005 letesne 5%, o uz 2008 ~10%.

Seip tai nera pavyzdziu dokumentacijoje. Nera DQL aprasymo... Ir DB manager aplikacija labai jau paprasta. Idomu kaip aktyviai dabar ScimorDB yra developinama ir ar tai daroma cia lietuvoje ar visos uzduotys keliauja kazkur kitur (i Danija pvz).

Idomu kokia planuojama ateitis siam produktui ir ar nebutu naudingiau pereiti prie Open Source su pvz GPL licenzija ar LGPL. Kad prie source galetu prieti ir tobublinit daugiau zmoniu. Nes produktas rimtas ir sparta jo gera ir architektura.

O naudoti dabar kompanijoje sita produkta ivertinant jo statusa pavojinga. Nes viena diena gali viskas uzsidaryti ir dings visas palaikymas... Nebent jus kartu galite su programa sharinti ir source.

Saulius

January 27. 2009 18:35

radioman

as meginau sita naudot, bet SQLite visus apnesa! "_^

radioman

January 29. 2009 10:28

scimore

Ar galite atsiusti koda su klaida [DQL:unknown parameter: value]. Nes siaip tai viskas turetu dirbti. Sprendziant is klaidos, tai atrodo kad parametrui reiksme nebuvo priskirta.

Siuo metu dirbame prie v3.0 versijos. Su release iseis nauja dokumentacija. Viena is nauju savybiu - naujas DB engine, kuris naudoja 4 ir daugiau kartu maziau disko palyginus su esamu db enginu'u ir dirba greiciau.

Visus darbus atliekame patys, be "outsorcinimo".

Del DQL dokumentacijos parasykite mums i support@scimore.com kad atsiustume. Siaip, DQL'as pasikeite truputi, todel sios dokumentacijos online nepadejome.

Apie Open Source mes galvojome, kol kas konkreciai nera nuspresta. Jeigu turetu ideju del open source, parasykite.

Provideri, client'o C++, manageri, dokumentacija galima atidaryti nors ir dabar. DB engine sourcai taip pat atidaryti, bet reikia pasirasyti NDA.

scimore

January 30. 2009 10:13

Saulius

Pridedu koda cia nes neusgalvojau kur cia galima atsiust:

using System;
using System.Collections.Generic;
using System.Text;
using Scimore.Data.ScimoreClient;

namespace DBQueryTest
{
public class SC
{
private static int cmdCount = 10000;

public static void SimpleTest()
{
Random r = new Random();

// prepare items
List<DataItem> dataList = new List<DataItem>();

DateTime start = DateTime.Now;
for (int i = 0; i < cmdCount; i++)
{
DataItem item = new DataItem();
item.id = i;
item.quality = (short)r.Next(0, 4);
item.timestamp = DateTime.Now;
item.value = (int)r.Next(0, 3000);

dataList.Add(item);
}

string scimoreServer = "localhost";
ScimoreConnection conn = new ScimoreConnection(string.Format("SERVER={0}; Port=999; Initial Catalog=Tests", scimoreServer));

ScimoreCommand cmd = conn.CreateCommand();
cmd.CommandText = @"insert into [Tests.ValuesTable] ([value], [quality], [pointID], [time]) values ( @value, @quality ,@id, @time )";
cmd.Parameters.Add(new ScimoreParameter("@value", ScimoreDbType.Double));
cmd.Parameters.Add(new ScimoreParameter("@quality", ScimoreDbType.SmallInt));
cmd.Parameters.Add(new ScimoreParameter("@id", ScimoreDbType.Int));
cmd.Parameters.Add(new ScimoreParameter("@time", ScimoreDbType.DateTime));

try
{
conn.Open();
start = DateTime.Now;
dataList.ForEach(
delegate(DataItem item)
{
cmd.Parameters["@value"].Value = item.value;
cmd.Parameters["@quality"].Value = item.quality;
cmd.Parameters["@id"].Value = item.id;
cmd.Parameters["@time"].Value = item.timestamp;
cmd.ExecuteNonQuery();
}
);

TimeSpan diff = DateTime.Now.Subtract(start);
Console.WriteLine(" Time: {0} ms", diff.TotalMilliseconds);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
conn.Close();
}
}
}
}

Saulius

January 30. 2009 11:17

scimore

Nereikia prideti '@' parametru pavadinime:

cmd.Parameters["value"].Value = item.value;
cmd.Parameters["quality"].Value = item.quality;
cmd.Parameters["id"].Value = item.id;
cmd.Parameters["time"].Value = item.timestamp;

scimore

January 30. 2009 11:29

Saulius

Supratau, taciau cia nelabai gerai. Nes pvz sql server parametrai rasomi "@parametras" ir tas pats priskiriant reiksme. Su Oracle tas pats tik ten ":parameteras". SQL Lite taip pat su @. Zemiau kodas:

SQl server:
cmd.CommandText = "insert into dbo.ValuesTable (value, quality, pointID, time) values ( @value, @quality ,@id, @time )";
cmd.Parameters.Add(new SqlParameter("@value", System.Data.SqlDbType.Float));
cmd.Parameters.Add(new SqlParameter("@quality", System.Data.SqlDbType.SmallInt));
cmd.Parameters.Add(new SqlParameter("@id", System.Data.SqlDbType.Int));
cmd.Parameters.Add(new SqlParameter("@time", System.Data.SqlDbType.DateTime));

-------------------
Oracle:
OracleCommand cmd = conn.CreateCommand();
cmd.CommandText = "insert into ValuesTable (value, quality, pointID, time) values ( :value, :quality , :time, :id )";
cmd.Parameters.Add(new OracleParameter(":value", OracleDbType.Double));
cmd.Parameters.Add(new OracleParameter(":quality", OracleDbType.Int32));
cmd.Parameters.Add(new OracleParameter(":id", OracleDbType.Int32));
cmd.Parameters.Add(new OracleParameter(":time", OracleDbType.Date));

Mano pasiulymas butu pataisyti kad butu "@parametras", nes:
1. Suderinamumas su sql server
2. Kodingo stilius sutampa su kitais provaideriais


Saulius

January 30. 2009 11:37

scimore

Taip, sutinku. Uzregistravau baga.

Galima padaryti, kad "@parameter" ir "parameter" provideryje butu identifikuojamas vienodai. Tokiu atveju esamos ir naujos aplikacijos dirbtu?

scimore

January 30. 2009 11:39

scimore

Tiesa, reikia pakeisti ir:

cmd.Parameters.Add(new ScimoreParameter("value", ScimoreDbType.Double));
cmd.Parameters.Add(new ScimoreParameter("quality", ScimoreDbType.SmallInt));
cmd.Parameters.Add(new ScimoreParameter("id", ScimoreDbType.Int));
cmd.Parameters.Add(new ScimoreParameter("time", ScimoreDbType.DateTime));

kad dirbtu

scimore

February 3. 2009 14:50

Saulius

Padariau keleta tikslesniu testu palyginimui. Visgi dar daug atsiliekama nuo Sql server.

Testai su 10000 irasu. Pateikiamas 1 komandos vidutinis laikas.

----- SQL Srv'05--ScimorDB--SQL Srv'08--
| Insert | 0,5834 | 0,9005 | 0,6500 |
---------------------------------------------------------
| update | 0,5481 | 0,9787 | 0,5441 |
---------------------------------------------------------
| Update all | 0,0044 | 0,0656 | 0,0063 |
---------------------------------------------------------
| Insert with SP| 0,5793 | 0,8232 | 0,6109 |
---------------------------------------------------------
| Insert no IDX | 0,1355 | 0,7978 | 0,1340 |
---------------------------------------------------------

Saulius

February 3. 2009 14:59

Saulius

Sistema testavime: Intel Core 2 T7300 2 GHz, 2Gb RAM
Laikas nurodytas milisekundemis.

Testavau tik iterpima ir atnaujinima, nes tai aktualu is musu puses.

Saulius

February 3. 2009 15:46

scimore

Tikimes, kad naujas "DB engine v4" isspres sia problema. Siuo metu testuojame. insert/update dirba ~2 kartus greiciau.

Baze "prepared SQL" optimizuoja kiekviena karta, kai komanda vygdoma, tai, kad dirbtu greiciau, galima naudoti "stored procedure".

scimore

February 4. 2009 08:17

Saulius

Kaip matosi is rezultatu, testavau ir su stored procedure. (4 eilute). Tai greiciau, bet vistiek dar pakankamai toli nuo SQl server. Stored procedure kodas sql serveryje ir scimore buvo identiskas.

CREATE PROCEDURE InsertValue(@value FLOAT, @quality SMALLINT, @id INT, @time DATETIME)
AS
BEGIN
insert into ValuesTable ([value], quality, pointID, [time]) values ( @value, @quality ,@id, @time )

END

Tik vienas dalykas labai idomus, kad mano naudojama SP yra tiesiog insert komanda apgaubta SP ir kaip matosi ant sql server insert komandos ir SP su insert komanda laikas praktiskai vienodas. O scimoreDB jau zenkliai skiriasi.
Keista kas ten taip optimizuojama vienos eilutes SP. Mano manymu turetu veikti panasia sparta ir SQL komanda ir SP(kaip sql server) ir savo darba turi atidirbti sql query optimaizeris.

Saulius

February 4. 2009 08:18

Saulius

Zinoma sudetingesnei SP tas negalioja - ji visada veiks greiciau nei atskirai vykdoma komandu seka.

Saulius

February 4. 2009 08:24

Saulius

> Tikimes, kad naujas "DB engine v4" isspres sia problema. Siuo
> metu testuojame. insert/update dirba ~2 kartus greiciau.

O tai kaip su 3 versija. Juk ji dar tik beta, o jus jau dirbat prie 4. Kaip suprantu dabar stable release yra 2.5 Tai sekantis bus 3 ar 4. O Jus naudojat kodo issisakojima pagal versijas, kad butu galima pataisyti pvz 2.5 versijos bug'a ir padaryti sekanti (pvz 2.6 ) realisa ar taisote tik ant galutines (siuo atveju 4) versijos.

Kazkaip cia man neaisku su versiju strategija pas jus. Bugtrackeryje maciau dar ir 3.5 versija Smile

Saulius

February 4. 2009 08:25

radioman

..panaudojus transakcijas, betkokia embeded baze apnesa sql serva ;}

radioman

February 4. 2009 08:27

Saulius

> ..panaudojus transakcijas, betkokia embeded baze apnesa sql serva ;}

Tai prasom testu rezultatus.

Saulius

February 4. 2009 08:43

Saulius

Seip as testavau ne su embeded Scimore versija.

Saulius

February 4. 2009 09:02

radioman

..patestuok visos transakcijos laika, o ne vidutini vienos komandos, kas yra nelabai aktualu..

radioman

February 4. 2009 09:30

Saulius

Mano tranzakcija buvo is vienos komandos siuose testuose.

Saulius

February 4. 2009 09:38

Saulius

As testavau "query per second" ir sql serveris (2005 ir 2008) stipriai aplenke scimore DB. Tokius pat testus dar bandziau su oracle, sql lite. zadu pabandyti su postgresql. Kol kas laimi sql serveris. Nu aisku oracle nedaug atsilieka.

Saulius

February 4. 2009 09:42

scimore

Cia "DB engine v4" nera ScimoreDB 4.0 versija. Tai yra nauja DB tablu struktura, kuri yra ScimoreDB 3.0 versijoje.

Visas kodas yra SVN'e, kur kiekviena versija turi savo "main" ir "release" branch'us. Siuo metu pagrinde dirbame ant 3.0 versijos, dokumentacijos ir testu.

ScimoreDB proceduros dirba greiciau, nes SQL'o nereikia parsinti ir generuoti DQL. Matyt, SQL Serveris, tai daro viena karta ant connetion'o ir cashin'a plana.

scimore

February 4. 2009 09:44

Saulius

Man idomu kaip cia jie isspaude toki greiti:
http://www.scimore.com/technology/tpc.aspx

Su 1 nodu: 8500 query/s

Saulius

February 4. 2009 09:50

scimore

8500 query/s - tai selektai, parasyti su DQL.

Ar jus bandete testuoti su keliais thread'ais. Nes, tuop atveju TCP/IP greiciau dirba del multipleksijos ir ScimoreDB ijungia (priklausomai nuo apkrovu) "group commit" - keliu tranzakciju logai jungiami i viena bloka ir rasoma i diska per viena karta.

scimore

Comments are closed