Skip Navigation LinksALVAO 11.1ALVAO Service DeskImplementace systému v organizaciVlastní úpravy a rozšířeníUkládání příloh mimo databázi Skip Navigation Links.


Ukládání příloh mimo databázi

Přílohy, které obvykle zabírají největší část celé databáze, lze ukládat mimo databázi pomocí technologie filestream. Velikost příloh se pak nezapočítává do velikosti samotné databáze.

Tuto možnost zaškrtněte, pokud dotazy často obsahují přílohy, které pak výrazně zvyšují velikost databáze, a chcete používat Alvao na Microsoft SQL Server Express, kde je velikost databáze omezena.

Poznámka:
Nastavení ukládání příloh mimo databázi nemá vliv na výkonnost systému Alvao

Deaktivace možnosti ukládání příloh mimo databázi

  1. Povolení proudu souborů na serveru MS SQL
    • Povolení proudu souborů při instalaci MS SQL Serveru
      1. Otevřete stránku Konfigurace databázového stroje.
      2. Na kartě FILESTREAM postupně povolte následující možnosti:
        • Povolit FILESTREAM pro přístup v jazyce Transact-SQL
        • Povolit FILESTREAM pro přístup k souborovému I/O streamu
        • Povolit klientům odebírání proudový přístup k datům FILESTREAM
      3. Pokračovat v instalaci.
    • Povolení proudu souborů po instalaci MS SQL Serveru
      1. Spusťte Správce konfigurace SQL Serveru.
      2. Klepněte pravým tlačítkem myši na instanci služby SQL Server, které chcete povolit proud souborů.
      3. Na kartě FILESTREAM postupně zapněte všechny možnosti.
      4. Uložte kliknutím na tlačítko OK.
      5. Spusťte SQL Server Management Studio
      6. Spusťte následující skript SQL nad cílovou DB Alvao:
        • EXEC sp_configure filestream_access_level, 2
          GO
          RECONFIGURE
          GO
  2. Přidání proudu souborů do databáze
    1. Spusťte SQL Server Management Studio.
    2. Spusťte skript Alvao SQL nad cílovou DB:
      • ALTER DATABÁZE[<název_databáze>]
        ADD FILEGROUP fstDocumentGroup obsahuje filestream;
        go
        declare @db_name varchar (MAX)
        declare @filestream_loc varchar (MAX)
        SELECT @db_name = physical_name FROM sys.master_files WHERE database_id = DB_ID(DB_NAME()) AND type_desc = 'ROWS'
        set @db_name = REVERSE(RIGHT(REVERSE(@db_name),(LEN(@db_name)-CHARINDEX('\', REVERSE(@db_name),1))+1)))
        set @filestream_loc = @db_name + 'AlvaoFileStream'

        DECLARE @AddFileSql varchar(max);
        SET @AddFileSql = 'ALTER DATABASE[<název_databáze>]
        ADD FILE
        ( NAME = ''fstDocument'', FILENAME = ' + QuoteName( @filestream_loc, '''' ) + ')
        TO FILEGROUP [fstDocumentGroup];
        ';
        EXEC (@AddFileSql);
      Poznámka:
      Výše uvedený skript vytvoří složku pro uložení souborového proudu ve složce databázových souborů.
      Pokud chcete uložit tok souborů do vlastní definované složky, zadejte název složky včetně absolutní cesty do proměnné @filestream_loc:
      • ALTER DATABÁZE[<název_databáze>]
        ADD FILEGROUP fstDocumentGroup obsahuje filestream;
        go
        declare @filestream_loc varchar (MAX)
        set @filestream_loc = 'C:\<cesta>\<složka_s_filestream>'

        DECLARE @AddFileSql varchar(max);
        SET @AddFileSql = 'ALTER DATABASE[<název_databáze>]
        ADD FILE
        ( NAME = ''fstDocument'', FILENAME = ' + QuoteName( @filestream_loc, '''' ) + ')
        TO FILEGROUP [fstDocumentGroup];
        ';
        EXEC(@AddFileSql)
      Upozornění:
      Cílová složka nesmí v době spuštění skriptu existovat. Bude automaticky vytvořena při spuštění skriptu
  3. Přidání proudu souborů do tabulky tDocument
    1. Spusťte aplikaci SQL Server Management Studio.
    2. Spusťte skript Alvao SQL nad cílovou DB:
      • ALTER TABLE dbo.tDocument SET (FILESTREAM_ON = fstDocumentGroup)
        GO

        ALTER TABLE dbo.tDocument
        ADD TempColumn varbinary(max) FILESTREAM NULL
        GO

        DECLARE @curId INT
        DECLARE @db_cursor CURSOR
        SET @db_cursor = CURSOR FOR
        SELECT iDocumentId FROM dbo.tDocument WHERE oDocument IS NOT NULL

        OPEN @db_cursor
        FETCH NEXT FROM @db_cursor INTO @curId

        WHILE @@FETCH_STATUS = 0
        BEGIN
        UPDATE dbo.tDocument SET TempColumn = oDocument WHERE iDocumentId = @curId
        UPDATE dbo.tDocument SET oDocument = NULL WHERE iDocumentId = @curId

        FETCH NEXT FROM @db_cursor INTO @curId
        END
        CLOSE @db_cursor
        DEALLOCATE @db_cursor
        GO

        ALTER TABLE dbo.tDocument DROP COLUMN oDocument
        GO

        EXEC sp_rename 'dbo.tDocument.TempColumn', 'oDocument', 'COLUMN'
        GO

Zakázání možnosti ukládat přílohy mimo databázi

  1. Odstranění proudu souborů z tabulky tDocument
    1. V prostředí SQL Server Management Studio spusťte následující skript nad cílovou DB Alvao:
      • ALTER TABLE dbo.tDocument ADD TempColumn varbinary(max)
        GO

        DECLARE @curId INT
        DECLARE @db_cursor CURSOR
        SET @db_cursor = CURSOR FOR
        SELECT iDocumentId FROM dbo.tDocument WHERE oDocument IS NOT NULL

        OPEN @db_cursor
        FETCH NEXT FROM @db_cursor INTO @curId

        WHILE @@FETCH_STATUS = 0
        BEGIN
        UPDATE dbo.tDocument SET TempColumn = oDocument WHERE iDocumentId = @curId
        UPDATE dbo.tDocument SET oDocument = NULL WHERE iDocumentId = @curId

        FETCH NEXT FROM @db_cursor INTO @curId
        END
        CLOSE @db_cursor
        DEALLOCATE @db_cursor

        GO
        ALTER TABLE dbo.tDocument DROP COLUMN oDocument
        GO
        EXEC sp_rename 'dbo.tDocument.TempColumn', 'oDocument', 'COLUMN'
        GO
        ALTER TABLE dbo.tDocument set (filestream_on = "NULL")
  2. Odstranění proudu souborů z databáze
    1. V aplikaci SQL Management Studio spusťte skript:
      • ALTER DATABASE[<název_databáze>] REMOVE FILE fstDocument
        GO
        ALTER DATABASE[<název_databáze>] REMOVE FILEGROUP fstDocumentGroup
        GO
  3. Zakázání proudu souborů na MS SQL Serveru
    • Zakázání ve Správci konfigurace SQL
      1. Spusťte SQL Server Management Studio.
      2. Spusťte skript Alvao SQL nad cílovou DB:
        • EXEC sp_configure filestream_access_level, 0
          GO
          RECONFIGURE
          GO
      3. Spusťte Správce konfigurace SQL Serveru.
      4. Klikněte pravým tlačítkem myši na instanci služby SQL Server, u které chcete zakázat proud souborů.
      5. Na kartě FILESTREAM postupně zakažte všechny možnosti.
      6. Uložte kliknutím na tlačítko OK.

 

Nenašli jste co jste hledali? Zeptejte se našeho týmu technické podpory.